From: Carsten Schoenert Date: Wed, 25 Jan 2017 21:38:35 +0000 (+0000) Subject: Import kicad_4.0.5+dfsg1-4.debian.tar.xz X-Git-Tag: archive/raspbian/6.0.2+dfsg-1+rpi1~1^2^2^2^2^2~14^5 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=243615291802f96b962d1b510f3b05e6645bf35f;p=kicad.git Import kicad_4.0.5+dfsg1-4.debian.tar.xz [dgit import tarball kicad 4.0.5+dfsg1-4 kicad_4.0.5+dfsg1-4.debian.tar.xz] --- 243615291802f96b962d1b510f3b05e6645bf35f diff --git a/README.source b/README.source new file mode 100644 index 00000000..114668c8 --- /dev/null +++ b/README.source @@ -0,0 +1,40 @@ +KiCad packaging workflow +------------------------ + +KiCad uses git-buildpackage for the packaging maintenance. This means the whole +Debian specific work is done in separate branches. The needed Debian specific +patches will be managed by a so called patch-queue branch if needed. + +The KiCad source used for packaging is split off into the main application and +some additional add-ons like the documentation (upstream kicad-doc called), the +localization (upstream kicad-i18n called) and the various libraries for +schematic, footprints and the 3D modells (upstream uses various git +repositories for those). + +We use component tarballs to collect all the sources. git-buildpackage is able +to handle those files for importing into the git tree as also for extracting +the correct component tarballs later if needed. For the recreation of the +orig*.tar.xz pristine-tar is doing the correct action. + +The helper script debian/create_kicad_upstream_tarballs.sh will create all the +tarballs if a new version is released. The script will create the following +files in /tmp/kicad-tmp + + kicad_+dfsg.orig.tar.xz + kicad_+dfsg.orig-doc.tar.xz + kicad_+dfsg.orig-i18n.tar.xz + kicad_+dfsg.orig-libraries.tar.xz + +Please call the script without any option or with option '-h' to see how the +script should be called. +The helper script will remove files that are not DFSG clean like sourceless PDF +and SVG/CPP files without a DFSG compatible license. + +The multi tarballs will be extracted to the following folders while importing +the new version: + + *.orig-doc.tar.xz -> doc/ + *.orig-i18n.tar.xz -> i18n/ + *.orig-libraries.xz -> libraries/ + + -- Carsten Schönert , Wed, 21 Sep 2016 22:45:00 +0200 diff --git a/changelog b/changelog new file mode 100644 index 00000000..76a10e38 --- /dev/null +++ b/changelog @@ -0,0 +1,559 @@ +kicad (4.0.5+dfsg1-4) unstable; urgency=medium + + [ Carsten Schoenert ] + * [375ce2f] Revert "debian/control: decrease Architectures for arch packages" + + removing the arch specific decrease of the build architecture, it's + really not useful here (Thx Emilio & Aurelien) + * [b2c400d] kicad-common.lintian-overrides: ingoring Lintian + + kicad-common is now arch dependend, silence lintian here that is saying + kicad-common has only content that is indep but we relay on the python + package + + -- Carsten Schoenert Wed, 25 Jan 2017 22:38:35 +0100 + +kicad (4.0.5+dfsg1-3) unstable; urgency=medium + + [ Carsten Schoenert ] + * [1835f2e] debian/control: decrease Architectures for arch packages + + minimize the platform where kicad should be build, libboost-context-dev + isn't on all platforms available + * [4bd0315] manpages: adding missing manpages + * [d1b0883] debian/copyright: reflect last changes and updates + + -- Carsten Schoenert Fri, 20 Jan 2017 21:51:15 +0100 + +kicad (4.0.5+dfsg1-2) unstable; urgency=medium + + [ Carsten Schoenert ] + * [85bda23] kicad-common: make package arch-depended + * [e38bb91] debian/kicad.install: fix installation of man pages + * [1e3fc2e] override_dh_fixperms: adding mised call for dh_fixperms + + -- Carsten Schoenert Mon, 16 Jan 2017 18:56:50 +0100 + +kicad (4.0.5+dfsg1-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [cc405a8] debian/control: adding Vcs fields after creating git tree + * [a5b571d] rework helper script for source tarball creation + * [e0d8156] debian/kicad.lintian-overrides: be more flexible + * [f458b82] debian/rules: split dh_fixperms + (Closes: #847820) + * [dfd193b] New upstream version 4.0.5+dfsg1 + (Closes: #851000) + * [47c248a] debian/rules: adjusting KICAD_FULL_VERSION + * [bb3ec74] rebuild patch queue from patch-queue branch + * [3d40398] kicad.install: re-adding the existing man pages + * [e0fdaa1] debian/control: split of B-D package asciidoc + * [774746f] debian/rules: remove build-arch specific target + * [3f5b978] debian/control: adding myself to the Uploaders + + -- Carsten Schoenert Sat, 14 Jan 2017 21:45:37 +0100 + +kicad (4.0.4+dfsg2-1) unstable; urgency=medium + + [ Carsten Schoenert ] + * [41a2fdb] create patch-queue branch from the existing patches + * [22b5df9] debian/gbp.conf: adding helper config for git-buildpackage + * [3ea2c1d] debian/get-kicad.sh: modify script to get recent versions + * [eebdef9] New upstream version 4.0.4+dfsg2 + * [3691290] debian/README.source: adjust info about gbp workflow + * [706c203] debian/control: wrap and sort the entries + * [a8f2838] place desktop file in favour of a menu files + * [4f033cf] kicad-doc*: adopt the documentation packages + * [8d7dd1a] debian/copyright: adjust copyright information + * [8d417ff] kicad: using the debhelper sequencer file mechanism + * [38470c3] kicad-common: also using debhelper sequencer files + * [e4be662] debian/control: adding new helper for dh_python2 support + * [bb84cb9] debian/watch: adjusting watch URL and filemangle + * [522a99e] debian/rules: enabling cmake build with some overrides + (Closes: #833685) + * [32f83db] debian/kicad.lintian-overrides: some needed overrides + * [1ce57ed] rebuild patch queue from patch-queue branch + * [182cc1a] rebuild patch queue from patch-queue branch + * [5eb0382] kicad: enable the BUILD_GITHUB_PLUGIN (Closes: #820261) + * [a200091] debian/copyright: adopt changes due libcurl support + * [6e43839] debian/control: adding explicit python dep for kicad-common + * [b96a3b7] debian/control: set Multi-Arch: foreign also on Arch: all + * [6e15016] rebuild patch queue from patch-queue branch + * [a869507] fix some buildflag hardening issues + * [95bb23d] rebuild patch queue from patch-queue branch + * [bc820d2] debian/rules: adding date from changelog to the Asciidoc files + + -- Georges Khaznadar Tue, 15 Nov 2016 09:20:38 +0100 + +kicad (4.0.4+dfsg1-2) unstable; urgency=medium + + * Removed the spurious dependency on libglew, which should be computed + automatically by debian helper scripts. Closes: #838536 + + -- Georges Khaznadar Fri, 30 Sep 2016 14:46:55 +0200 + +kicad (4.0.4+dfsg1-1) unstable; urgency=medium + + * checked that 4.0.2+dfsg1-2~bpo8+1-1 is available. Closes: #811268 + * modified .install files to install kicad.mo files. Closes: #819855 + * applied Graham Inggs' patch. Closes: #834246 + * added a Recommends: for xsltproc. Closes: #826750 + * updated Standards-Version to 3.9.8 + * upgraded to the last upstream version. Closes: #833777 + * added build-dependencies on texlive-lang-cyrillic and texlive-fonts-extra + + -- Georges Khaznadar Wed, 11 May 2016 16:14:08 +0200 + +kicad (4.0.2+dfsg1-4) unstable; urgency=medium + + * added a dependency on python-wxgtk3.0. Closes: #816525 + + -- Georges Khaznadar Thu, 03 Mar 2016 10:34:37 +0100 + +kicad (4.0.2+dfsg1-3) unstable; urgency=medium + + * changed the last patch according to Steven Chamberlain's proposition. + * added a build-dependency on libpython-stdlib, which should not harm + for most architectures, and might be necessary on a few ones. + * removed the tee commands from the build routine + + -- Georges Khaznadar Mon, 22 Feb 2016 17:19:10 +0100 + +kicad (4.0.2+dfsg1-2) unstable; urgency=medium + + * Added a default define: LIB_ENV_VAR = wxT("LD_LIBRARY_PATH"). + Closes: #815247 + + -- Georges Khaznadar Sat, 20 Feb 2016 16:59:52 +0100 + +kicad (4.0.2+dfsg1-1) unstable; urgency=medium + + * removed the obsoleted file debian/get_newest_source.sh + * modified debian/get-kicad.sh to download data from i18n + repositories, and to get kicad's core with version number 4.0.2 + * updated to version 2.0.2 + * created a new Makefile to compile i18n PO files + * fixed a mistake in bitmaps_png/CMakeLists.txt's patch : no need to + patch that file since files with copyright issues were replaced. + * added a build-dependency on gettext + + -- Georges Khaznadar Mon, 15 Feb 2016 15:15:34 +0100 + +kicad (4.0.1+dfsg1-2) unstable; urgency=medium + + * fixed the short package description for kicad-doc-de. + Closes: #813605 + * added usr/lib/python2.7/dist-packages in d/kicad.install. + Closes: #813655 + + -- Georges Khaznadar Thu, 04 Feb 2016 09:35:29 +0100 + +kicad (4.0.1+dfsg1-1) unstable; urgency=medium + + * repacked the source tarball, to withdraw files with a wrong license + and the .cpp files which were generated from those sources. + * created a new script debian/get_newest_source.sh and a file + debian/watch to enjoy it. + * modified debian/get_newest_source.sh to notify files with wrong + licenses. + * replaced files find.svg and find_replace.svg which came with wrong + licenses, and compiled them into cpp files. + * updated the URL in debian/copyright for Poly2Tri + * added a build-dependency on python-dev + * fixed the dependency on libglew1.13|libglew1.10 which prenvented + the installation of kicad. Closes: #807082; Closes: #805115 + * checked that the scripts provided by Alexandre Rebert cannot + crash kicad's binaries any longer. Closes: #715686. + Closes: #716091. Closes: #716557. + * checked that the script to get sources does not miss + 'TO_SOT_Packages_SMD.pretty' neither 'TO_SOT_Packages_THT.pretty'. + Closes: #804614 + * added a build-dependency on python-all + * modified debian/get-kicad.sh to upgrade to version 4.0.1 + * upgraded to the new upstream version + * xsltproc is now invoked with --nonet; Closes: #807082 + * verified that all .pretty files are dowloaded when the source + package is created. Closes: #804614 + * added a dependency on libglew >= 1.10; Closes: #805115 + * added compile definitions to build python scripting features, + as recommended at http://kicad-pcb.org/download/source/ + * added a build-dependencies on python-wxgtk3.0-dev and swig + * reactivated packages kicad-doc-de and kicad-doc-es; added build + dependencies texlive-lang-german and texlive-langspanish. + * added a dependency kicad-common -> python as this package contains + one python script. Added --with python option to the dh call. + + -- Georges Khaznadar Thu, 07 Jan 2016 19:11:44 +0100 + +kicad (4.0.0~rc1a-3) unstable; urgency=medium + + * added a build-dependency on docbook-xsl; enforced a non-parallel build + for documents, following Simon Richter's hints. Closes: #806967 + + -- Georges Khaznadar Sun, 06 Dec 2015 20:08:42 +0100 + +kicad (4.0.0~rc1a-2) unstable; urgency=medium + + * applied Graham Inggs' patch. Closes: #806967 + + -- Georges Khaznadar Thu, 03 Dec 2015 18:27:16 +0100 + +kicad (4.0.0~rc1a-1) unstable; urgency=medium + + * added a dependency on libglew1.13; Closes #805115 + * added new flags for CMAKE_OPTS in Makefile to display the correct version + in windows' titles. + * added "manually" repositories for TO_SOT_Packages_THT.pretty and + TO_SOT_Packages_SMD.pretty; Closes #804614 + * remade the source package as too much files have been added for a simple + patch + + -- Georges Khaznadar Sun, 15 Nov 2015 15:58:56 +0100 + +kicad (4.0.0~rc1-2) unstable; urgency=medium + + * fixed a typo in Makefile + * lowered the number of dependencies (dropped the dependency on all boost + libs, made a list of more precise dependencies) + * added CPPFLAGS to CXXFLAGS (workaround explained at + https://wiki.debian.org/Hardening#Notes_for_packages_using_CMake) + * added a switch -j4 in Makefile to trigger multithreading for the main + build + + -- Georges Khaznadar Wed, 04 Nov 2015 10:48:42 +0100 + +kicad (4.0.0~rc1-1) unstable; urgency=medium + + * updated the script get-kicad.sh to download the core from Github, docs + and libraryes from Github. *.pretty libraries are downloaded from + Github too. + * created Makefile, doc/Makefile, library/Makefile + * modified d/rules, d/control, d/*.install, d/kicad.manpages + * written recipes to move shared libraries which were in /usr/bin/_*.kiface + * written recipes to choose the file fp-lib-table.for-pretty as a default + template + * written recipes to fix missing icons and to resize badly shaped 48x48 + icons. + * updated the file debian/copyright + * the new package Closes: #795077; Closes: #770227; Closes: #783040; + Closes: #787983; Closes: #802973; Closes: #794311; Closes: #798966 + + -- Georges Khaznadar Fri, 23 Oct 2015 13:17:13 +0200 + +kicad (0.20141025+bzr4029-2) unstable; urgency=medium + + * modified the description of the package for Japanese documentation. + Closes: #767647 + * modified the default path to templates. Closes: #771354 + + -- Georges Khaznadar Sat, 01 Nov 2014 19:39:30 +0100 + +kicad (0.20141025+bzr4029-1) unstable; urgency=medium + + * upgraded to the newest upstream releases for the code and the components. + * added a rule in d/rules to remove useless .ps files. Closes: #737933 + * modified kicad.pro. Closes: #763683 + * updated Standards-Version to 3.9.6 + * added a build-dependency on unoconv + * added build rules to make PDF help files from sources + * added the package kicad-doc-ja in d/control, and files + d/kicad-doc-*.install, for "pt" and "ja" languages. + + -- Georges Khaznadar Sun, 26 Oct 2014 10:26:51 +0100 + +kicad (0.20140622+bzr4027-3) unstable; urgency=medium + + * dropped the dependency on zlib-bin, since grep shows no occurence + of "minizip" nor "miniunzip" in kicad's source. Closes: #761320 + + -- Georges Khaznadar Fri, 12 Sep 2014 23:20:43 +0200 + +kicad (0.20140622+bzr4027-2) unstable; urgency=medium + + * added -DCMAKE_BUILD_TYPE=Release as a definition for cmake. + This does not fix every bug, but it removes dialogs about failed + assertions raised by wxASSERT, which are usually non-blocking, + as long as one decides to continue and unactivate the assert warnings. + Feel free to report bugs which affect user-level features. + Closes: #749278 + + -- Georges Khaznadar Wed, 02 Jul 2014 22:28:01 +0200 + +kicad (0.20140622+bzr4027-1) unstable; urgency=medium + + * added a routine to creat the version string. Closes: #749308 + * upgraded to the newest component libraries. Closes: #751994 + + -- Georges Khaznadar Sun, 22 Jun 2014 18:29:50 +0200 + +kicad (0.20140518+bzr4027-2) unstable; urgency=medium + + * applied Samuel Thibault's patch. Closes: #749930 + + -- Georges Khaznadar Sun, 01 Jun 2014 16:34:06 +0200 + +kicad (0.20140518+bzr4027-1) unstable; urgency=medium + + * retrieved the last upstream version, Closes: #741673, Closes: #741437 + * upgraded some build-dependencies, libwxgtk3.0-dev, applied a part of + Olly Betts' patch. Closes: #741440 + * applied Dimitris Lampridis' patch. Closes: #745705 + * modified get-kikad.sh to make xz compressed file. + * added a rule to fix permissions of ja/kicad.po + + -- Georges Khaznadar Sun, 18 May 2014 14:59:05 +0200 + +kicad (0.20140224+bzr4027-3.1) unstable; urgency=low + + * Non-maintainer upload. + * It FTBFS because kicad-common is arch independent. + Patch by Dejan Latinovic . + Closes: #741743 + + -- Anibal Monsalve Salazar Fri, 09 May 2014 04:33:24 +0100 + +kicad (0.20140224+bzr4027-3) unstable; urgency=medium + + * taken in account Samuel Thibault's hint. Closes: #740999 + + -- Georges Khaznadar Fri, 07 Mar 2014 11:48:29 +0100 + +kicad (0.20140224+bzr4027-2) unstable; urgency=medium + + * fixed a bug in d/rules. + * added a clause Conflicts: kicad-common ( << 0.20140224), + Closes: #740276 + * Checked that the file Getting_Started_in_KiCad.pdf is distributed with + some -doc-xy packages. Closes: #691660 + + -- Georges Khaznadar Thu, 06 Mar 2014 02:24:33 +0100 + +kicad (0.20140224+bzr4027-1) unstable; urgency=medium + + * changed the lp: repository for kicad's library in order to match active + repositories listed at + https://code.launchpad.net/kicad/+branches?field.lifecycle=ALL&field.lifecycle-empty-marker=1&field.sort_by=most+recently+changed+first&field.sort_by-empty-marker=1 + the file debian/get-kicad.sh should be more efficient now. + Closes: #712259 + * modified the script debian/clean_sourceless_pdf: more formats are allowed + for source files, and the search for source files is now case-insensitive. + names without prefixes are allowed too (they are directory names) + * fixed a few wrong permissions in packaged files + * modified the package assignation for files in usr/share/applications + * modified the script debian/get-kicad.sh to add a minimum set of + legacy footprints. Closes: #736180; Closes: #707956 + * removed bloated .ps files from the source package. Closes: #737933 + * added a dependency on imagemagick to mamange the icons at build time + + -- Georges Khaznadar Mon, 24 Feb 2014 15:40:26 +0100 + +kicad (0.20131208+bzr4024-1) unstable; urgency=medium + + * scheduled the installation of doc/internat into usr/share/kicad. + Closes: #734552 + * upgraded Standards-Version to 3.9.5 + * Upgraded to the newest upstream release. Closes: #712303 + * The script debian/get-kicad.sh makes easier to fetch newer source files + Closes: #713861 + + -- Georges Khaznadar Wed, 08 Jan 2014 17:25:14 +0100 + +kicad (0.20130727+bzr4024-2) unstable; urgency=low + + * modified the homepage in d/control. Closes: #713858 + * modified ./scripts/kicad-get-rss to remove bashisms. Closes: #690645 + * modified d/kicad-common.install to fix forgotten libraries. + Closes: #719530 + + -- Georges Khaznadar Wed, 07 Aug 2013 11:19:25 +0200 + +kicad (0.20130727+bzr4024-1) unstable; urgency=low + + * upgraded to the last revision. Closes: #694740 + * updated Standards-Version to 3.9.4, compat to 9. + * commented out a few lines in include/common.h, to enable the build + with wx libraries available in Sid. Don't know why these lines were + introduced. + + -- Georges Khaznadar Sat, 27 Jul 2013 18:31:03 +0200 + +kicad (0.20130125+bzr3921-1) unstable; urgency=low + + * upgraded to the last revision. Closes: #694740 + * changed my DEBEMAIL + * updated the variable GENERATED_FILES in debian/rules to add + new files to the cleaning list and remove obsoleted directories + * updated the patches for quilt + * updated debian/kicad-common.install to take in account the + no longer existent directories library and doc. + + -- Georges Khaznadar Fri, 25 Jan 2013 19:08:22 +0100 + +kicad (0.20120526+bzr3261-1) unstable; urgency=low + + * upgraded to the last stable revision. Closes: #656215 + * removed debian/source/include-binaries and the additional files which + came with it + * added a script debian/clean_sourceless_pdf which removes PDF files + in many directories when no source was found. This script outputs + a log file: debian/erased_pdf.log, which should be cleared when a + new upstream package is downloaded. + * modified kicad-doc-es.install since there is no source for the pdf file + * modified kicad-doc-pl.install since a pdf source is missing + * upgraded Standards-Version to 3.9.3 + * precised a Replaces: stance (kicad (<< 0.20120126+bzr3256-1)) + + -- Georges Khaznadar Sat, 26 May 2012 17:28:12 +0000 + +kicad (0.20120126+bzr3256-3.1) unstable; urgency=low + + * Non-maintainer upload. + * gcc-4.7: Fix build failure with GCC 4.7. Closes: #672727. + - include/boost/polygon/polygon_90_set_data.hpp: Include + "detail/polygon_sort_adaptor.hpp" for gtlsort. + + -- Matej Vela Fri, 25 May 2012 22:25:46 +0100 + +kicad (0.20120126+bzr3256-3) unstable; urgency=low + + * excluded .pdf files from dh_compress. Closes: #659660 + + -- Georges Khaznadar Wed, 15 Feb 2012 18:07:06 +0000 + +kicad (0.20120126+bzr3256-2) unstable; urgency=low + + * added the l10n files into the package kicad-common. Closes: #659091 + * added eeschema.svg into usr/share/icons/hicolor/scalable/apps. + Closes: #659317 + * applied Vincent Danjean's tip. Closes: #657729 + + -- Georges Khaznadar Fri, 10 Feb 2012 17:54:11 +0000 + +kicad (0.20120126+bzr3256-1) unstable; urgency=low + + * upgraded to the latest upstream version. Closes: #656215 + * modified the packaging scripts (simplified debian/rules, added + some .install files. + + -- Georges Khaznadar Thu, 26 Jan 2012 08:42:59 +0100 + +kicad (0.0.20110616-1) unstable; urgency=low + + * upgraded to the latest upstream version. + * included the files sent by their author, by email + <4DF93DA9.50504@iridec.com.au>, Closes: #630453 + + -- Georges Khaznadar Thu, 16 Jun 2011 22:52:02 +0200 + +kicad (0.0.20110507-1) unstable; urgency=low + + * upgraded to the new upstream version. Closes: #624439 + + -- Georges Khaznadar Sat, 07 May 2011 16:52:33 +0200 + +kicad (0.0.20101024-2) unstable; urgency=low + + * changed the format to 3.0 (quilt) + * enabled the parallel build feature in debian/rules + + -- Georges Khaznadar Sun, 24 Oct 2010 10:54:16 +0200 + +kicad (0.0.20101024-1) unstable; urgency=low + + * Maintainer change. + - Closes: #599427 + * changed the way sources are downloaded. See debian/packagesrc.sh + * upgraded to newest stable release. + - Closes: #590483 + - Closes: #580497 + * moved the dependency on extra-xdg-menus to Suggests: level. + - Closes: #577282 + * added a list of auto-generated files to remove upon clean target + + -- Georges Khaznadar Sun, 24 Oct 2010 02:34:38 +0200 + +kicad (0.0.20100314-1) unstable; urgency=low + + * New upstream (Closes: #575018). + * Update Standards-Version to 3.8.4 (no changes needed). + + -- Richard Antony Burton Sun, 28 Mar 2010 12:58:23 +0000 + +kicad (0.0.20090216-1) unstable; urgency=low + + * New upstream release. (Closes: #529628) + * - Upstream fix. (Closes: #532367) + * - Upstream fix. (Closes: #509956) + * Move shortcut to electronics section. (Closes: #536307) + * Suggest documentation. (Closes: #502546) + * Update Standards-Version to 3.8.3 (no changes needed). + + -- Richard Antony Burton Sat, 26 Sep 2009 12:47:27 +0000 + +kicad (0.0.20080825c-1) unstable; urgency=low + + * New upstream release. (Closes: #496897) + * Use new cmake build system. + * Use new svn repository layout. + * Build using wxWidgets 2.8. (Closes: #398615) + * Require debhelper 6 to get fix for 459426. + * Upstream performance improvement for redraw. (Closes: #469516) + * Moved examples to /usr/share/doc/kicad/demos + * Update Standards-Version to 3.8.0 (no changes needed). + * Add more language packages, for tutorials. + * Only en & fr manuals included, rest not currently maintained upstream. + + -- Richard Antony Burton Sun, 21 Sep 2008 19:58:47 +0100 + +kicad (0.0.20071129a-1) unstable; urgency=low + + * New upstream release. + * Fix menu icon (not the gnome one). + * Update Standards-Version to 3.7.3.0 (Debian menu structure change only). + + -- Richard Antony Burton Wed, 19 Dec 2007 17:04:33 +0000 + +kicad (0.0.20070702-1) unstable; urgency=low + + * New upstream release. + * Added man pages for binaries. (Closes: #429223) + * All patches from previous version now included upstream. + + -- Richard Antony Burton Sun, 08 Jul 2007 09:15:42 +0100 + +kicad (0.0.20070525-1) unstable; urgency=low + + * New upstream release (Closes: #423873) + * Install help files to correct location (Closes: #404783) + * For languages without native help files the English doc package is pulled in + with the non-English doc package, so there is at least some help. + * Not removing all binaries removed during 'clean' (Closes: #424455) + * Patch for the 3D Display image export problem (Closes: #423882) + + -- Richard Antony Burton Sun, 27 May 2007 13:43:01 +0100 + +kicad (0.0.20060829-2) unstable; urgency=low + + * Fixing wrong location of helpfiles (Closes: #404783) (djp) + + -- Daniel J. Priem Thu, 28 Dec 2006 12:20:31 +0100 + +kicad (0.0.20060829-1) unstable; urgency=low + + * now binNMU safe (rab) + * This version is 20060828 but since i forgot something inside the orig.tar.gz i must increase the version number (djp) + * Added newer documentation (djp) + * Added some updated po files (djp) + * Added italian help files (djp) + + -- Daniel J. Priem Sun, 12 Nov 2006 21:40:23 +0100 + +kicad (0.0.20060828-1) unstable; urgency=low + + * New upstream. + * Split help files out into separate language-specific packages. + + -- Debian Kicad Team Fri, 3 Nov 2006 19:33:07 +0100 + +kicad (0.0.20060626-1) unstable; urgency=low + + * Initial release (Closes: #278581) + + -- Richard Antony Burton Sat, 30 Sep 2006 22:24:06 +0200 diff --git a/clean_sourceless_pdf b/clean_sourceless_pdf new file mode 100755 index 00000000..8be694b9 --- /dev/null +++ b/clean_sourceless_pdf @@ -0,0 +1,27 @@ +#!/bin/bash + +sourceSuffixes="odt odp odg odm sxw" +: > debian/erased_pdfs.log + +for d in doc Documentation pcb_calculator; do + find $d -name '*.pdf' -print | + while read p; do + ok=0 + dir=$(dirname "$p") + b=$(basename "$p") + for s in $sourceSuffixes; do + sourcePattern="${b/.pdf/*.$s}" + found=$(find $dir -iname "$sourcePattern") + if [ -n "$found" ]; then ## found source file + ok=1 + fi + done + if [ -n "$(find $dir -iname '${b/.pdf/}')" ]; then ## found directory + ok=1 + fi + if [ $ok = 0 ]; then + echo $p is sourceless, erasing it | tee -a debian/erased_pdfs.log + rm "$p" + fi + done +done diff --git a/compat b/compat new file mode 100644 index 00000000..ec635144 --- /dev/null +++ b/compat @@ -0,0 +1 @@ +9 diff --git a/control b/control new file mode 100644 index 00000000..5d43e733 --- /dev/null +++ b/control @@ -0,0 +1,292 @@ +Source: kicad +Section: electronics +Priority: optional +Maintainer: Georges Khaznadar +Uploaders: + Richard Antony Burton , + Carsten Schoenert , +Build-Depends: + asciidoc-base, + asciidoc-dblatex, + cmake, + dblatex, + debhelper (>= 9.20120417), + dh-python, + docbook-utils, + docbook-xsl, + doxygen, + dpkg-dev (>= 1.16.1.1~), + fonts-vlgothic, + gettext, + git, + imagemagick, + libboost-context-dev, + libboost-date-time-dev, + libboost-dev, + libboost-filesystem-dev, + libboost-iostreams-dev, + libboost-locale-dev, + libboost-program-options-dev, + libboost-regex-dev, + libboost-system-dev, + libboost-thread-dev, + libbz2-dev, + libcairo2-dev, + libcurl4-gnutls-dev, + libglew-dev, + liblocale-gettext-perl, + libpython-stdlib, + libterm-readkey-perl, + libtext-wrapi18n-perl, + libunicode-linebreak-perl, + libwxgtk3.0-dev, + libxml2-utils, + lmodern, + pandoc, + pkg-config, + po4a, + python-all, + python-dev, + python-wxgtk3.0-dev, + quilt, + source-highlight, + swig, + texlive-fonts-extra, + texlive-lang-cyrillic, + texlive-lang-english, + texlive-lang-european, + texlive-lang-french, + texlive-lang-german, + texlive-lang-italian, + texlive-lang-japanese, + texlive-lang-polish, + texlive-lang-spanish, + texlive-xetex, + xmlto, +Vcs-Git: https://anonscm.debian.org/cgit/pkg-electronics/kicad.git +Vcs-Browser: https://anonscm.debian.org/cgit/pkg-electronics/kicad.git +Standards-Version: 3.9.8 +Homepage: http://www.kicad-pcb.org + +Package: kicad +Architecture: any +Depends: + kicad-common (>= ${source:Version}), + python-wxgtk3.0, + ${misc:Depends}, + ${python:Depends}, + ${shlibs:Depends}, +Suggests: + extra-xdg-menus, + kicad-doc-ca | kicad-doc-de | kicad-doc-en | kicad-doc-es | kicad-doc-fr | kicad-doc-it | kicad-doc-ja | kicad-doc-nl | kicad-doc-pl | kicad-doc-ru, +Recommends: + xsltproc, +Description: Electronic schematic and PCB design software + Kicad is a suite of programs for the creation of printed circuit boards. + It includes a schematic editor, a PCB layout tool, support tools and a + 3D viewer to display a finished & fully populated PCB. + . + Kicad is made up of 5 main components: + . + * kicad - project manager + * eeschema - schematic editor + * pcbnew - PCB editor + * gerbview - GERBER viewer + * cvpcb - footprint selector for components + . + Libraries: + * Both eeschema and pcbnew have library managers and editors for their + components and footprints + * You can easily create, edit, delete and exchange library items + * Documentation files can be associated with components, footprints and key + words, allowing a fast search by function + * Very large libraries are available for schematic components and footprints + * Most components have corresponding 3D models + +Package: kicad-common +Architecture: any +Multi-Arch: foreign +Depends: + python, + ${misc:Depends}, +Recommends: + kicad, +Description: Common files used by kicad + This package contains the component libararies (schematics and footprints), + also the 3D modell libraries. Also this package contains the i18n language + files for KiCad and common used scripts, templates, demos, Python scripting + plugins and MIME links. + +Package: kicad-doc-ca +Section: doc +Architecture: all +Multi-Arch: foreign +Depends: + ${misc:Depends}, +Description: Kicad help files (Catalan) + This package provides various documentation files for KiCad in Catalan, like + the EPUB and the PDF files and also the OnLine HTML documentation for: + . + * GSIK - Getting Started in KiCad + * KiCad - The main project editor + +Package: kicad-doc-de +Section: doc +Architecture: all +Multi-Arch: foreign +Depends: + ${misc:Depends}, +Description: Kicad help files (German) + This package provides various documentation files for KiCad in German, like + the EPUB and the PDF files and also the OnLine HTML documentation for: + . + * CvPcb - Component association of Footprints + * Eeschema -schematic capture editor + * GerbView - Gerber file viewer (RS 274 X format) + * GSIK - Getting Started in KiCad + * IDF Exporter - Export tool for IDFv3 boards and libraries + * KiCad - The main project editor + * Pcbnew - The printed circuit board software tool + * PlEditor - The layout editor for custom title block + +Package: kicad-doc-en +Section: doc +Architecture: all +Multi-Arch: foreign +Depends: + ${misc:Depends}, +Description: Kicad help files (English) + This package provides various documentation files for KiCad in English, like + the EPUB and the PDF files and also the OnLine HTML documentation for: + . + * CvPcb - Component association of Footprints + * Eeschema -schematic capture editor + * GerbView - Gerber file viewer (RS 274 X format) + * GSIK - Getting Started in KiCad + * IDF Exporter - Export tool for IDFv3 boards and libraries + * KiCad - The main project editor + * Pcbnew - The printed circuit board software tool + * PlEditor - The layout editor for custom title block + . + You will also find a GUI translation HOWTO inside this package if you want to + help with translation of the KiCad GUI into new or existing languages. + +Package: kicad-doc-es +Section: doc +Architecture: all +Multi-Arch: foreign +Depends: + ${misc:Depends}, +Description: Kicad help files (Spanish) + This package provides various documentation files for KiCad in Spanish, like + the EPUB and the PDF files and also the OnLine HTML documentation for: + . + * CvPcb - Component association of Footprints + * Eeschema -schematic capture editor + * GerbView - Gerber file viewer (RS 274 X format) + * GSIK - Getting Started in KiCad + * KiCad - The main project editor + * Pcbnew - The printed circuit board software tool + * PlEditor - The layout editor for custom title block + +Package: kicad-doc-fr +Section: doc +Architecture: all +Multi-Arch: foreign +Depends: + ${misc:Depends}, +Description: Kicad help files (French) + This package provides various documentation files for KiCad in French, like + the EPUB and the PDF files and also the OnLine HTML documentation for: + . + * CvPcb - Component association of Footprints + * Eeschema -schematic capture editor + * GSIK - Getting Started in KiCad + * KiCad - The main project editor + * Pcbnew - The printed circuit board software tool + * PlEditor - The layout editor for custom title block + +Package: kicad-doc-it +Section: doc +Architecture: all +Multi-Arch: foreign +Depends: + ${misc:Depends}, +Description: Kicad help files (Italian) + This package provides various documentation files for KiCad in Italian, like + the EPUB and the PDF files and also the OnLine HTML documentation for: + . + * CvPcb - Component association of Footprints + * Eeschema -schematic capture editor + * GerbView - Gerber file viewer (RS 274 X format) + * GSIK - Getting Started in KiCad + * IDF Exporter - Export tool for IDFv3 boards and libraries + * KiCad - The main project editor + * Pcbnew - The printed circuit board software tool + * PlEditor - The layout editor for custom title block + +Package: kicad-doc-ja +Section: doc +Architecture: all +Multi-Arch: foreign +Depends: + ${misc:Depends}, +Description: Kicad help files (Japanese) + This package provides various documentation files for KiCad in Japanese, like + the EPUB and the PDF files and also the OnLine HTML documentation for: + . + * CvPcb - Component association of Footprints + * Eeschema -schematic capture editor + * GerbView - Gerber file viewer (RS 274 X format) + * GSIK - Getting Started in KiCad + * IDF Exporter - Export tool for IDFv3 boards and libraries + * KiCad - The main project editor + * Pcbnew - The printed circuit board software tool + * PlEditor - The layout editor for custom title block + +Package: kicad-doc-nl +Section: doc +Architecture: all +Multi-Arch: foreign +Depends: + ${misc:Depends}, +Description: Kicad help files (Dutch) + This package provides various documentation files for KiCad in Dutch, like + the EPUB and the PDF files and also the OnLine HTML documentation for: + . + * GSIK - Getting Started in KiCad + +Package: kicad-doc-pl +Section: doc +Architecture: all +Multi-Arch: foreign +Depends: + ${misc:Depends}, +Description: Kicad help files (Polish) + This package provides various documentation files for KiCad in Polish, like + the EPUB and the PDF files and also the OnLine HTML documentation for: + . + * CvPcb - Component association of Footprints + * Eeschema -schematic capture editor + * GerbView - Gerber file viewer (RS 274 X format) + * GSIK - Getting Started in KiCad + * IDF Exporter - Export tool for IDFv3 boards and libraries + * KiCad - The main project editor + * Pcbnew - The printed circuit board software tool + * PlEditor - The layout editor for custom title block + +Package: kicad-doc-ru +Section: doc +Architecture: all +Multi-Arch: foreign +Depends: ${misc:Depends} +Description: Kicad help files (Russian) + This package provides various documentation files for KiCad in Russian, like + the EPUB and the PDF files and also the OnLine HTML documentation for: + . + * CvPcb - Component association of Footprints + * GerbView - Gerber file viewer (RS 274 X format) + * GSIK - Getting Started in KiCad + * IDF Exporter - Export tool for IDFv3 boards and libraries + * KiCad - The main project editor + * PlEditor - The layout editor for custom title block diff --git a/copyright b/copyright new file mode 100644 index 00000000..13732a46 --- /dev/null +++ b/copyright @@ -0,0 +1,675 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: kicad +Source: see file get-kicad.sh; lp:kicad/4.0; https://github.com/KiCad/kicad-doc; + https://github.com/KiCad/library; https://github.com/KiCad/*.pretty + +Files: * +Copyright: (C) 2015 KiCad Developers +License: GPL-2+ + +Files: 3d-viewer/trackball.* +Copyright: (C) 1993, 1994, Silicon Graphics, Inc. +License: SG1 + +Files: common/geometry/hetriang.cpp +Copyright: (C) 1998, 2000-2007, 2010-2013 SINTEF ICT, Applied Mathematics, Norway + (C) 2013 CERN, Maciej Suminski +License: AFPL1 + +Files: include/ttl/* +Copyright: (C) 1998, 2000-2007, 2010-2013 SINTEF ICT, Applied Mathematics, Norway +License: AFPL1 + +Files: polygon/clipper.* +Copyright: (C) 2010-2014 Angus Johnson +License: BOOST1 + +Files: polygon/poly2tri/* +Copyright: (C) 2009-2010, Poly2Tri Contributors https://github.com/jhasse/poly2tri +License: Poly2Tri + +Files: eeschema/plugins/bom2csv.xsl +Copyright: (C) 2013 Stefan Helmert +License: GPL-2+ + +Files: eeschema/plugins/netlist_form_*.xsl +Copyright: (C) 2010, SoftPLC Corporation +License: GPL-2+ + +Files: pcbnew/specctra.keywords +Copyright: (C) 2007-2011 SoftPLC Corporation, Dick Hollenbeck +License: GPL-2+ + +Files: pcbnew/autorouter/rect_placement/rect_placement.* +Copyright: (C) 2000-2002 by Javier Arevalo +License: other + This code is free to use and modify for all purposes + +Files: include/gal/opengl/glm/* +Copyright: (C) 2005 - 2013 G-Truc Creation (www.g-truc.net) +License: GLM1 + +Files: potrace/* +Copyright: (C) 2001-2007 Peter Selinger +License: GPL-2+ + +Files: doc/* +Copyright: (C) 2006-2015 KiCad Developers +License: GPL-2+ or CC-BY-SA-3.0 +Comment: + The KiCad documentation is dual licensed. + You may distribute it and/or modify it under the terms of either + the GNU General Public License (http://www.gnu.org/licenses/gpl.html), + version 3 or later, or the Creative Commons Attribution License + (http://creativecommons.org/licenses/by/3.0/), version 3.0 or later. + . + See: http://kicad-pcb.org/about/licenses/ + +Files: libraries/* +Copyright: (C) 2006-2015 KiCad Developers +License: GPL-2+ + +Files: lib_dxf/* +Copyright: (C) 2011 Rallaz +License: GPL-2+ + +Files: CMakeModules/FindPackageMessage.cmake +Copyright: (C) 2008-2009 Kitware, Inc. +License: BSD1 + +Files: CMakeModules/FindCairo.cmake +Copyright: (C) 2012 Dmitry Baryshnikov +License: BSD1 + +Files: CMakeModules/FindwxWidgets.cmake +Copyright: (C) 2004-2009 Kitware, Inc. + (C) 2007-2009 Miguel A. Figueroa-Villanueva +License: BSD1 + +Files: CMakeModules/SelectLibraryConfigurations.cmake +Copyright: (C) 2009 Will Dicharry + (C) 2005-2009 Kitware, Inc. +License: BSD1 + +Files: CMakeModules/UsewxWidgets.cmake +Copyright: (C) 2004-2009 Kitware, Inc. + (C) 2006 Jan Woetzel +License: BSD1 + +Files: CMakeModules/CheckCXXSymbolExists.cmake +Copyright: (C) 2003-2011 Kitware, Inc. +License: BSD1 + +Files: CMakeModules/CMakeFindFrameworks.cmake +Copyright: (C) 2003-2011 Kitware, Inc. +License: BSD1 + +Files: CMakeModules/FindSubversion.cmake +Copyright: (C) 2006, Tristan Carel +License: BSD1 + +Files: CMakeModules/FindPythonLibs.cmake +Copyright: (C) 2001-2009 Kitware, Inc. +License: BSD1 + +Files: CMakeModules/FindGLEW.cmake +Copyright: (C) 2009 Boudewijn Rempt +License: BSD1 + +Files: CMakeModules/FindPythonInterp.cmake +Copyright: (C) 2005-2010 Kitware, Inc. + (C) 2011 Bjoern Ricks + (C) 2012 Rolf Eike Beer +License: BSD1 + +Files: debian/* +Copyright: (C) 2006-2010 Richard A Burton + (C) 2015-2016 Georges Khaznadar + (C) 2016-2017 Carsten schoenert +License: GPL-2+ + +Files: pcbnew/github/avhttp-master.zip +Copyright: (C) 2015 Jack + (C) 2015 coleman + (C) 2015 eahydra + (C) 2015 kiki + (C) 2015 microcai +License: BOOST1 + +License: GPL-2+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". + +License: CC-BY-SA-3.0 + Creative Commons Attribution-ShareAlike 3.0 Unported + . + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL + SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT + RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. + CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND + DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. + . + License + . + THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE + COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY + COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS + AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + . + BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE + BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE + CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE + IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + . + 1. Definitions + . + a. "Adaptation" means a work based upon the Work, or upon the Work and other + pre-existing works, such as a translation, adaptation, derivative work, + arrangement of music or other alterations of a literary or artistic work, + or phonogram or performance and includes cinematographic adaptations or any + other form in which the Work may be recast, transformed, or adapted + including in any form recognizably derived from the original, except that a + work that constitutes a Collection will not be considered an Adaptation for + the purpose of this License. For the avoidance of doubt, where the Work is + a musical work, performance or phonogram, the synchronization of the Work + in timed-relation with a moving image ("synching") will be considered an + Adaptation for the purpose of this License. + . + b. "Collection" means a collection of literary or artistic works, such as + encyclopedias and anthologies, or performances, phonograms or broadcasts, + or other works or subject matter other than works listed in Section 1(f) + below, which, by reason of the selection and arrangement of their contents, + constitute intellectual creations, in which the Work is included in its + entirety in unmodified form along with one or more other contributions, + each constituting separate and independent works in themselves, which + together are assembled into a collective whole. A work that constitutes a + Collection will not be considered an Adaptation (as defined below) for the + purposes of this License. + . + c. "Creative Commons Compatible License" means a license that is listed at + http://creativecommons.org/compatiblelicenses that has been approved by + Creative Commons as being essentially equivalent to this License, + including, at a minimum, because that license: (i) contains terms that + have the same purpose, meaning and effect as the License Elements of this + License; and, (ii) explicitly permits the relicensing of adaptations of + works made available under that license under this License or a Creative + Commons jurisdiction license with the same License Elements as this + License. + . + d. "Distribute" means to make available to the public the original and copies + of the Work or Adaptation, as appropriate, through sale or other transfer + of ownership. + . + e. "License Elements" means the following high-level license attributes as + selected by Licensor and indicated in the title of this License: + Attribution, ShareAlike. + . + f. "Licensor" means the individual, individuals, entity or entities that + offer(s) the Work under the terms of this License. + . + g. "Original Author" means, in the case of a literary or artistic work, the + individual, individuals, entity or entities who created the Work or if no + individual or entity can be identified, the publisher; and in addition (i) + in the case of a performance the actors, singers, musicians, dancers, and + other persons who act, sing, deliver, declaim, play in, interpret or + otherwise perform literary or artistic works or expressions of folklore; + (ii) in the case of a phonogram the producer being the person or legal + entity who first fixes the sounds of a performance or other sounds; and, + (iii) in the case of broadcasts, the organization that transmits the + broadcast. + . + h. "Work" means the literary and/or artistic work offered under the terms of + this License including without limitation any production in the literary, + scientific and artistic domain, whatever may be the mode or form of its + expression including digital form, such as a book, pamphlet and other + writing; a lecture, address, sermon or other work of the same nature; a + dramatic or dramatico-musical work; a choreographic work or entertainment + in dumb show; a musical composition with or without words; a + cinematographic work to which are assimilated works expressed by a process + analogous to cinematography; a work of drawing, painting, architecture, + sculpture, engraving or lithography; a photographic work to which are + assimilated works expressed by a process analogous to photography; a work + of applied art; an illustration, map, plan, sketch or three-dimensional + work relative to geography, topography, architecture or science; a + performance; a broadcast; a phonogram; a compilation of data to the extent + it is protected as a copyrightable work; or a work performed by a variety + or circus performer to the extent it is not otherwise considered a literary + or artistic work. + . + i. "You" means an individual or entity exercising rights under this License + who has not previously violated the terms of this License with respect to + the Work, or who has received express permission from the Licensor to + exercise rights under this License despite a previous violation. + . + j. "Publicly Perform" means to perform public recitations of the Work and to + communicate to the public those public recitations, by any means or + process, including by wire or wireless means or public digital + performances; to make available to the public Works in such a way that + members of the public may access these Works from a place and at a place + individually chosen by them; to perform the Work to the public by any means + or process and the communication to the public of the performances of the + Work, including by public digital performance; to broadcast and rebroadcast + the Work by any means including signs, sounds or images. + . + k. "Reproduce" means to make copies of the Work by any means including without + limitation by sound or visual recordings and the right of fixation and + reproducing fixations of the Work, including storage of a protected + performance or phonogram in digital form or other electronic medium. + . + 2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, + or restrict any uses free from copyright or rights arising from limitations + or exceptions that are provided for in connection with the copyright + protection under copyright law or other applicable laws. + . + 3. License Grant. Subject to the terms and conditions of this License, + Licensor hereby grants You a worldwide, royalty-free, non-exclusive, + perpetual (for the duration of the applicable copyright) license to + exercise the rights in the Work as stated below: + . + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the Collections; + . + b. to create and Reproduce Adaptations provided that any such Adaptation, + including any translation in any medium, takes reasonable steps to clearly + label, demarcate or otherwise identify that changes were made to the + original Work. For example, a translation could be marked "The original + work was translated from English to Spanish," or a modification could + indicate "The original work has been modified."; + . + c. to Distribute and Publicly Perform the Work including as incorporated in + Collections; and, + . + d. to Distribute and Publicly Perform Adaptations. + . + e. For the avoidance of doubt: + . + i. Non-waivable Compulsory License Schemes. In those jurisdictions in which + the right to collect royalties through any statutory or compulsory + licensing scheme cannot be waived, the Licensor reserves the exclusive + right to collect such royalties for any exercise by You of the rights + granted under this License; + . + ii. Waivable Compulsory License Schemes. In those jurisdictions in which the + right to collect royalties through any statutory or compulsory licensing + scheme can be waived, the Licensor waives the exclusive right to collect + such royalties for any exercise by You of the rights granted under this + License; and, + . + iii. Voluntary License Schemes. The Licensor waives the right to collect + royalties, whether individually or, in the event that the Licensor is a + member of a collecting society that administers voluntary licensing + schemes, via that society, from any exercise by You of the rights granted + under this License. + . + The above rights may be exercised in all media and formats whether now known + or hereafter devised. The above rights include the right to make such + modifications as are technically necessary to exercise the rights in other + media and formats. Subject to Section 8(f), all rights not expressly granted + by Licensor are hereby reserved. + . + 4. Restrictions. The license granted in Section 3 above is expressly made + subject to and limited by the following restrictions: + . + a. You may Distribute or Publicly Perform the Work only under the terms of + this License. You must include a copy of, or the Uniform Resource + Identifier (URI) for, this License with every copy of the Work You + Distribute or Publicly Perform. You may not offer or impose any terms on + the Work that restrict the terms of this License or the ability of the + recipient of the Work to exercise the rights granted to that recipient + under the terms of the License. You may not sublicense the Work. You must + keep intact all notices that refer to this License and to the disclaimer of + warranties with every copy of the Work You Distribute or Publicly Perform. + When You Distribute or Publicly Perform the Work, You may not impose any + effective technological measures on the Work that restrict the ability of a + recipient of the Work from You to exercise the rights granted to that + recipient under the terms of the License. This Section 4(a) applies to the + Work as incorporated in a Collection, but this does not require the + Collection apart from the Work itself to be made subject to the terms of + this License. If You create a Collection, upon notice from any Licensor You + must, to the extent practicable, remove from the Collection any credit as + required by Section 4(c), as requested. If You create an Adaptation, upon + notice from any Licensor You must, to the extent practicable, remove from + the Adaptation any credit as required by Section 4(c), as requested. + . + b. You may Distribute or Publicly Perform an Adaptation only under the terms + of: (i) this License; (ii) a later version of this License with the same + License Elements as this License; (iii) a Creative Commons jurisdiction + license (either this or a later license version) that contains the same + License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); + (iv) a Creative Commons Compatible License. If you license the Adaptation + under one of the licenses mentioned in (iv), you must comply with the terms + of that license. If you license the Adaptation under the terms of any of + the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), + you must comply with the terms of the Applicable License generally and the + following provisions: (I) You must include a copy of, or the URI for, the + Applicable License with every copy of each Adaptation You Distribute or + Publicly Perform; (II) You may not offer or impose any terms on the + Adaptation that restrict the terms of the Applicable License or the ability + of the recipient of the Adaptation to exercise the rights granted to that + recipient under the terms of the Applicable License; (III) You must keep + intact all notices that refer to the Applicable License and to the + disclaimer of warranties with every copy of the Work as included in the + Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or + Publicly Perform the Adaptation, You may not impose any effective + technological measures on the Adaptation that restrict the ability of a + recipient of the Adaptation from You to exercise the rights granted to that + recipient under the terms of the Applicable License. This Section 4(b) + applies to the Adaptation as incorporated in a Collection, but this does + not require the Collection apart from the Adaptation itself to be made + subject to the terms of the Applicable License. + . + c. If You Distribute, or Publicly Perform the Work or any Adaptations or + Collections, You must, unless a request has been made pursuant to Section + 4(a), keep intact all copyright notices for the Work and provide, + reasonable to the medium or means You are utilizing: (i) the name of the + Original Author (or pseudonym, if applicable) if supplied, and/or if the + Original Author and/or Licensor designate another party or parties (e.g., a + sponsor institute, publishing entity, journal) for attribution + ("Attribution Parties") in Licensor's copyright notice, terms of service or + by other reasonable means, the name of such party or parties; (ii) the + title of the Work if supplied; (iii) to the extent reasonably practicable, + the URI, if any, that Licensor specifies to be associated with the Work, + unless such URI does not refer to the copyright notice or licensing + information for the Work; and (iv) , consistent with Ssection 3(b), in the + case of an Adaptation, a credit identifying the use of the Work in the + Adaptation (e.g., "French translation of the Work by Original Author," or + "Screenplay based on original Work by Original Author"). The credit + required by this Section 4(c) may be implemented in any reasonable manner; + provided, however, that in the case of a Adaptation or Collection, at a + minimum such credit will appear, if a credit for all contributing authors + of the Adaptation or Collection appears, then as part of these credits and + in a manner at least as prominent as the credits for the other contributing + authors. For the avoidance of doubt, You may only use the credit required + by this Section for the purpose of attribution in the manner set out above + and, by exercising Your rights under this License, You may not implicitly + or explicitly assert or imply any connection with, sponsorship or + endorsement by the Original Author, Licensor and/or Attribution Parties, as + appropriate, of You or Your use of the Work, without the separate, express + prior written permission of the Original Author, Licensor and/or + Attribution Parties. + . + d. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute or + Publicly Perform the Work either by itself or as part of any Adaptations or + Collections, You must not distort, mutilate, modify or take other + derogatory action in relation to the Work which would be prejudicial to the + Original Author's honor or reputation. Licensor agrees that in those + jurisdictions (e.g. Japan), in which any exercise of the right granted in + Section 3(b) of this License (the right to make Adaptations) would be + deemed to be a distortion, mutilation, modification or other derogatory + action prejudicial to the Original Author's honor and reputation, the + Licensor will waive or not assert, as appropriate, this Section, to the + fullest extent permitted by the applicable national law, to enable You to + reasonably exercise Your right under Section 3(b) of this License (right to + make Adaptations) but not otherwise. + . + 5. Representations, Warranties and Disclaimer + . + UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS + THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND + CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, + WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A + PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER + DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT + DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED + WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + . + 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, + IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY + SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING + OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + . + 7. Termination + . + a. This License and the rights granted hereunder will terminate automatically + upon any breach by You of the terms of this License. Individuals or + entities who have received Adaptations or Collections from You under this + License, however, will not have their licenses terminated provided such + individuals or entities remain in full compliance with those licenses. + Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. + . + b. Subject to the above terms and conditions, the license granted here is + perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the Work + under different license terms or to stop distributing the Work at any time; + provided, however that any such election will not serve to withdraw this + License (or any other license that has been, or is required to be, granted + under the terms of this License), and this License will continue in full + force and effect unless terminated as stated above. + . + 8. Miscellaneous + . + a. Each time You Distribute or Publicly Perform the Work or a Collection, the + Licensor offers to the recipient a license to the Work on the same terms + and conditions as the license granted to You under this License. + . + b. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers + to the recipient a license to the original Work on the same terms and + conditions as the license granted to You under this License. + . + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of the + remainder of the terms of this License, and without further action by the + parties to this agreement, such provision shall be reformed to the minimum + extent necessary to make such provision valid and enforceable. + . + d. No term or provision of this License shall be deemed waived and no breach + consented to unless such waiver or consent shall be in writing and signed + by the party to be charged with such waiver or consent. + . + e. This License constitutes the entire agreement between the parties with + respect to the Work licensed here. There are no understandings, agreements + or representations with respect to the Work not specified here. Licensor + shall not be bound by any additional provisions that may appear in any + communication from You. This License may not be modified without the mutual + written agreement of the Licensor and You. + . + f. The rights granted under, and the subject matter referenced, in this + License were drafted utilizing the terminology of the Berne Convention for + the Protection of Literary and Artistic Works (as amended on September 28, + 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the + WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright + Convention (as revised on July 24, 1971). These rights and subject matter + take effect in the relevant jurisdiction in which the License terms are + sought to be enforced according to the corresponding provisions of the + implementation of those treaty provisions in the applicable national law. + If the standard suite of rights granted under applicable copyright law + includes additional rights not granted under this License, such additional + rights are deemed to be included in the License; this License is not + intended to restrict the license of any rights under applicable law. + . + Creative Commons Notice + . + Creative Commons is not a party to this License, and makes no warranty + whatsoever in connection with the Work. Creative Commons will not be liable to + You or any party on any legal theory for any damages whatsoever, including + without limitation any general, special, incidental or consequential damages + arising in connection to this license. Notwithstanding the foregoing two (2) + sentences, if Creative Commons has expressly identified itself as the Licensor + hereunder, it shall have all rights and obligations of Licensor. + . + Except for the limited purpose of indicating to the public that the Work is + licensed under the CCPL, Creative Commons does not authorize the use by either + party of the trademark "Creative Commons" or any related trademark or logo of + Creative Commons without the prior written consent of Creative Commons. Any + permitted use will be in compliance with Creative Commons' then-current + trademark usage guidelines, as may be published on its website or otherwise + made available upon request from time to time. For the avoidance of doubt, + this trademark restriction does not form part of the License. + +License: SG1 + Permission to use, copy, modify, and distribute this software for + any purpose and without fee is hereby granted, provided that the above + copyright notice appear in all copies and that both the copyright notice + and this permission notice appear in supporting documentation, and that + the name of Silicon Graphics, Inc. not be used in advertising + or publicity pertaining to distribution of the software without specific, + written prior permission. + . + THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS" + AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, + INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR + FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, + SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY + KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, + LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF + THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. + . + US Government Users Restricted Rights + Use, duplication, or disclosure by the Government is subject to + restrictions set forth in FAR 52.227.19(c)(2) or subparagraph + (c)(1)(ii) of the Rights in Technical Data and Computer Software + clause at DFARS 252.227-7013 and/or in similar or successor + clauses in the FAR or the DOD or NASA FAR Supplement. + Unpublished-- rights reserved under the copyright laws of the + United States. Contractor/manufacturer is Silicon Graphics, + Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311. + . + OpenGL(TM) is a trademark of Silicon Graphics, Inc. + +License: AFPL1 + This file is part of TTL. + . + TTL is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + . + TTL is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + . + You should have received a copy of the GNU Affero General Public + License along with TTL. If not, see + . + . + In accordance with Section 7(b) of the GNU Affero General Public + License, a covered work must retain the producer line in every data + file that is created or manipulated using TTL. + . + Other Usage + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the TTL library without + disclosing the source code of your own applications. + . + This file may be used in accordance with the terms contained in a + written agreement between you and SINTEF ICT. + +License: BOOST1 + Boost Software License - Version 1.0 - August 17th, 2003 + . + Permission is hereby granted, free of charge, to any person or organization + obtaining a copy of the software and accompanying documentation covered by + this license (the "Software") to use, reproduce, display, distribute, + execute, and transmit the Software, and to prepare derivative works of the + Software, and to permit third-parties to whom the Software is furnished to + do so, all subject to the following: + . + The copyright notices in the Software and this entire statement, including + the above license grant, this restriction and the following disclaimer, + must be included in all copies of the Software, in whole or in part, and + all derivative works of the Software, unless such copies or derivative + works are solely in the form of machine-executable object code generated by + a source language processor. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT + SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +License: Poly2Tri + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the + distribution. Neither the name of Poly2Tri nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: GLM1 + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +License: BSD1 + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + . + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY + WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. diff --git a/create_kicad_upstream_tarballs.sh b/create_kicad_upstream_tarballs.sh new file mode 100755 index 00000000..b72da2ef --- /dev/null +++ b/create_kicad_upstream_tarballs.sh @@ -0,0 +1,529 @@ +#!/bin/bash + +# create_kicad_upstream_tarballs.sh +# Helper script for creating the needed main and additional tarballs for then +# kicad source package. Upstream is packing some sourceless and some non DFSG +# parts into their tarballs. As long as this happen we need to build own DFSG +# clean tarballs with a additional naming 'dfsg[version]'. +# The source is separated into the main tarball (1) and additional three +# parts (2-4): +# +# 1. The KiCad GUI soure -> kicad_[x]+dfsg[x].orig.tar.xz +# 2. The KiCad documentation -> kicad_[x]+dfsg[x].orig-doc.tar.xz +# 3. The KiCad localization -> kicad_[x]+dfsg[x].orig-18n.tar.xz +# 4. The KiCad libraries -> kicad_[x]+dfsg[x].orig-libraries.tar.xz +# +# This script is creating all needed tarballs and checks for non DFSG content. +# We can filter out more non DFSG related parts while importing with +# git-buildpackage. See debian/gbp.conf option 'filter'.q + +# Initialize our own variables: +VERBOSE=0 +CURDIR_FULL=`pwd` +CURDIR=$(basename `pwd`) +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +DFSG= +WGET_OPTIONS="-nc -c -q" +# base package name +SRCPKG="kicad" + +# local functions +usage () { +cat << EOF + +Usage: ${0##*/} [-h|-v] VERSION + + -h display this help and exit + -v verbose mode, increase the output messages + + [VERSION] tagged upstream version of KiCad (like a tag '4.0.4') + +Examples: + ${0##*/} 4.0.4 + + Download all the required upstream stuff silently as possible and prepares + the needed tarballs in /tmp . + + ${0##*/} -v 4.0.4 + + The same as above just with some more output while getting the various + upstream archives and on local operations while preparing the needed + tarballs. Mostly useful for debugging if something is going wrong. + +EOF +} + +debug () { +if [ "${VERBOSE}" = "1" ]; then + echo "DEBUG -> $1" +fi +} + +fail () { + echo $* + exit ${EXIT_FAILURE} +} + +print_project_decoration () { + echo "# ${1} #" + printf '%*s' ${2} | tr ' ' '#' + echo +} + +check_sourceless_files () { +echo +echo "Checking for non DFSG compliant content in $@ ..." +SOURCE_SUFFIXES="odt odp odg odm sxw" +for SCANDIR in $@; do + find ${SCANDIR} -name '*.pdf' -print | + while read FOUND_FILE; do + FOUND_SOURCE=0 + dir=$(dirname "${FOUND_FILE}") + b=$(basename "${FOUND_FILE}") + for SUFFIX in ${SOURCE_SUFFIXES}; do + # replacing '*.pdf' with pattern + SOURCE_PATTERN="${b/.pdf/*.${SUFFIX}}" + # counting if we found a pattern match + FOUND_PATTERN_COUNT=$(find ${SCANDIR} -iname "${SOURCE_PATTERN}") + if [ -n "${FOUND_PATTERN_COUNT}" ]; then + ## yes, we found a source file + FOUND_SOURCE=1 + fi + done + if [ -n "$(find ${SCANDIR} -iname '${b/.pdf/}')" ]; then + ## we found a directory + FOUND_SOURCE=1 + fi + if [ "${FOUND_SOURCE}" = 0 ]; then + debug "Erasing sources binary file: ${FOUND_FILE}" #| tee -a debian/erased_pdfs.log + rm "${FOUND_FILE}" + # ugly workaround, setting DFSG flag + touch ${TMPDIR}/dfsg + fi + done +done +} + +######################## +# We are starting here # +######################## + +# check for wget and curl +test -f /usr/bin/wget || fail "wget is missing, please install first!" +test -f /usr/bin/curl || fail "curl is missing, please install first!" + +# check if we are inside kicad/ and have a git environment +if [ "${CURDIR}" != "${SRCPKG}" ]; then + echo "Not in ${SRCPKG}/.." + echo "Your are in the correct directory? You currently in ${CURDIR_FULL} !" + exit ${EXIT_FAILURE} +else + if [ ! -d .git ]; then + echo "no directory .git/ found! You are in the correct directory?" + exit ${EXIT_FAILURE} + fi +fi + +# we have no options found? +if [ $(($#)) -lt 1 ]; then + echo "You need at least one option!" >&2 + echo + usage ${EXIT_FAILURE} +fi + +OPTIND=1 # Reset is necessary if getopts was used previously in the script. It is a good idea to make this local in a function. +while getopts "hv?" opt; do + case "$opt" in + h) HELP=1 + usage + exit + ;; + v) echo "[[ ... using verbose mode ... ]]" + VERBOSE=1 + # make wget a bit more noisy + WGET_OPTIONS="-nc -c" + ;; + '?') + usage >&2 + exit 1 + ;; + esac +done + +# shift found options +shift $(( OPTIND - 1 )) + +# looping the arguments, we should have at least only one without an option! +for ARG; do + ARG_COUNT=`expr ${ARG_COUNT} + 1` + debug "given argument: ${ARG}" + debug "ARG_COUNT = ${ARG_COUNT}" +done + +# if there is no argument left or given error out! +if [ "${ARG_COUNT}" = "0" -o "${ARG_COUNT}" = "" ]; then + echo "missing argument for VERSION!" + exit ${EXIT_FAILURE} + +# we have to many arguments, error out +elif [ "${ARG_COUNT}" != "1" ]; then + echo "${ARG_COUNT}" + echo "more than one argument for VERSION given!" + exit ${EXIT_FAILURE} +fi + +# o.k. the last argument should be the version +VERSION=${ARG} +# check for a valid version +if [[ ${VERSION} = *.*.* ]]; then + # splitting the given version + KICAD_MINOR_MICRO=${VERSION#*.} + KICAD_MAJOR=${VERSION%.*.*} + KICAD_MICRO=${KICAD_MINOR_MICRO#*.} + KICAD_MINOR=${KICAD_MINOR_MICRO%.*} +else + echo "The given Version '${VERSION}' looks quite unusual!" + echo "Will do nothing!" + exit ${EXIT_FAILURE} +fi +# more insane checking +if [ "${KICAD_MAJOR}" = "" -o "${KICAD_MINOR}" = "" -o "${KICAD_MICRO}" = "" ]; then + echo "There is something wrong with the given version!" + exit ${EXIT_FAILURE} +fi + +TMPDIR=/tmp/${SRCPKG}-tmp +TARBALLDIR=${TMPDIR}/tarballs +UPSTREAM_LIBRARIES=${TMPDIR}/libraries + +# create temporary folder for data collection +mkdir -p ${TMPDIR} +mkdir -p ${TARBALLDIR} +mkdir -p ${UPSTREAM_LIBRARIES} + +echo + +####################################################### +# collecting and preparing data for KiCad GUI tarball # +####################################################### + +# On Launchpad we got a URL which uses Major.Minor subdirectories e.g. +# https://launchpad.net/kicad/4.0/4.0.4/+download/kicad-4.0.4.tar.xz +KICAD_MAIN_BASE_DL="https://launchpad.net/${SRCPKG}/${KICAD_MAJOR}.${KICAD_MINOR}/${VERSION}" +# On GitHub we can simply query the released tags. +KICAD_SECOND_BASE_DL="https://github.com/KiCad/${SRCPKG}-source-mirror/tags" +# The default download will be made on Launchpad, otherwise the value will before +# overriden later. +KICAD_MAIN_DL="${KICAD_MAIN_BASE_DL}/+download/${SRCPKG}-${VERSION}.tar.xz" +# The name of the tarball we gonna downloading and saving. +KICAD_UPSTREAM_TARBALL=${TARBALLDIR}/${SRCPKG}-${VERSION}.tar.xz + +# We could probably check if we already have downloaded some valid archive. +# This would complicate the script with no valuable gain, wget is later +# smart enough to detect if a download is really needed. + +echo "Trying to load KiCad version ${VERSION} ..." + +# check if we can find a given version on Launchpad +RET=`curl -L --silent ${KICAD_MAIN_BASE_DL} | grep ${VERSION} | tr ' ' '\n' | grep "tar.xz"` +if [ "$?" = "0" -a "${RET}" != "" ]; then + debug "Found a valid download on ${KICAD_MAIN_BASE_DL} ..." + TAR_OPT="xJf" +else + echo "Couldn't find KiCad version ${VERSION} on Launchpad!" + echo "Tried to find a valid dowload on '${KICAD_MAIN_BASE_DL}'. Going further and trying a download on GitHub." + + # check if we can find a given version on GitHub + # The KiCad repository on GitHub uses also tag based download URLs + # e.g. https://github.com/KiCad/kicad/archive/4.0.4.tar.gz, to check this + # we need parse the available tags on https://github.com/KiCad/kicad-source-mirror/tags + # GitHub isn't providing *.xz archives! + RET=`curl -L --silent ${KICAD_SECOND_BASE_DL} | grep ${VERSION} | tr ' ' '\n' | grep "tar.gz"` + if [ "$?" = "0" -a "${RET}" != "" ]; then + debug "Found a valid dowload on ${KICAD_SECOND_BASE_DL}" + KICAD_MAIN_DL="github.com/KiCad/${SRCPKG}/archive/${VERSION}.tar.gz" + KICAD_UPSTREAM_TARBALL=${TARBALLDIR}/${SRCPKG}-${VERSION}.tar.gz + TAR_OPT="xzf" + else + echo "Couldn't find KiCad version ${VERSION} on GitHub!" + echo "Tried to find a valid download on '${KICAD_SECOND_BASE_DL}'." + echo "Maybe the '${VERSION}' isn't yet released or misspelled?" + echo + exit 1 + fi +fi +wget ${WGET_OPTIONS} ${KICAD_MAIN_DL} -O ${KICAD_UPSTREAM_TARBALL} +debug "create ${TMPDIR}/${SRCPKG}-${VERSION}" +mkdir -p ${TMPDIR}/${SRCPKG}-${VERSION} +debug "extracting ${KICAD_UPSTREAM_TARBALL} into ${TMPDIR}/${SRCPKG}-${VERSION} ... " +rm -rf ${TMPDIR}/${SRCPKG}-${VERSION}/* +tar ${TAR_OPT} ${KICAD_UPSTREAM_TARBALL} --strip-components=1 -C ${TMPDIR}/${SRCPKG}-${VERSION} +echo "Done" + +# checking if we need DFSG cleanout, some binary documents may have no sources +check_sourceless_files ${TMPDIR}/${SRCPKG}-${VERSION}/Documentation ${TMPDIR}/${SRCPKG}-${VERSION}/pcb_calculator +if [ -f ${TMPDIR}/dfsg ]; then + DFSG="+dfsg1" +fi + +# checking for CC-BY-2.0 licensed files, they not DFSG compatible +echo "Searching for CC-BY-2.0 licensed files ..." +for CC2_FILE_A in $(grep -l 'creativecommons.*by.*2\.0' ${TMPDIR}/${SRCPKG}-${VERSION}/bitmaps_png/sources/*.svg); do + rm ${CC2_FILE_A} + CC2_FILE_B=$(basename ${CC2_FILE_A}| sed 's/svg$/cpp/') + find ${TMPDIR}/${SRCPKG}-${VERSION}/bitmaps_png -name ${CC2_FILE_B} -exec rm {} \; + debug "removed ${CC2_FILE_A}" + debug "removed ${TMPDIR}/${SRCPKG}-${VERSION}/bitmaps_png/cpp_26/${CC2_FILE_B}" +done +echo + +################################################################# +# collecting and preparing data for KiCad documentation tarball # +################################################################# + +# The documentation repository is on GitHub and got tags we can use for +# downloading. e.g. https://github.com/KiCad/kicad-doc/archive/4.0.4.tar.gz + +KICAD_DOC_TAGS_URL="https://github.com/KiCad/${SRCPKG}-doc/tags" +KICAD_DOC_DL="github.com/KiCad/${SRCPKG}-doc/archive/${VERSION}.tar.gz" +KICAD_DOC_TARBALL=${TARBALLDIR}/${SRCPKG}-doc-${VERSION}.tar.gz + +echo "Trying to load KiCad Documentation ${VERSION} ..." +# check if we can find a given version on GitHub +RET=`curl -L --silent ${KICAD_DOC_TAGS_URL} | grep ${VERSION}.tar.gz | awk '{print $2}' | tr '<>"' ' ' | awk '{print $2}'` +if [ "$RET" != "" ]; then + wget ${WGET_OPTIONS} ${KICAD_DOC_DL} -O ${KICAD_DOC_TARBALL} + debug "create ${TMPDIR}/doc" + mkdir -p ${TMPDIR}/doc + debug "extracting ${KICAD_DOC_TARBALL} into ${TMPDIR}/doc ... " + rm -rf ${TMPDIR}/doc/* + tar xzf ${KICAD_DOC_TARBALL} --strip-components=1 -C ${TMPDIR}/doc + echo "Done" +else + echo "Couldn't find kicad-doc version ${VERSION} on GitHub!" + echo "Tried to find a valid download on '${KICAD_DOC_TAGS_URL}'." + echo "Maybe '${VERSION}' isn't yet released or misspelled?" + echo + exit 1 +fi + +# checking if we need DFSG cleanout, some binary documents may have no sources +check_sourceless_files ${TMPDIR}/doc +if [ -f ${TMPDIR}/dfsg ]; then + DFSG="+dfsg1" +fi +echo + +########################################################### +# collecting and preparing data for the KiCad 18n tarball # +########################################################### + +# The i18n repository is on GitHub and got tags we can use for +# downloading. e.g. https://github.com/KiCad/kicad-i18n/archive/4.0.4.tar.gz + +KICAD_I18N_TAGS_URL="https://github.com/KiCad/${SRCPKG}-i18n/tags" +KICAD_I18N_DL="github.com/KiCad/${SRCPKG}-i18n/archive/${VERSION}.tar.gz" +KICAD_I18N_TARBALL=${TARBALLDIR}/${SRCPKG}-i18n-${VERSION}.tar.gz + +echo "Trying to load KiCad i18n ${VERSION} ..." +# check if we can find a given version on GitHub +RET=`curl -L --silent ${KICAD_I18N_TAGS_URL} | grep ${VERSION}.tar.gz | awk '{print $2}' | tr '<>"' ' ' | awk '{print $2}'` +if [ "$RET" != "" ]; then + wget ${WGET_OPTIONS} ${KICAD_I18N_DL} -O ${KICAD_I18N_TARBALL} + debug "create ${TMPDIR}/i18n" + mkdir -p ${TMPDIR}/i18n + debug "extracting ${KICAD_I18N_TARBALL} into ${TMPDIR}/i18n ... " + rm -rf ${TMPDIR}/i18n/* + tar xzf ${KICAD_I18N_TARBALL} --strip-components=1 -C ${TMPDIR}/i18n + echo "Done" +else + echo "Couldn't find kicad-i18n version ${VERSION} on GitHub!" + echo "Tried to find a valid download on '${KICAD_I18N_TAGS_URL}'." + echo "Maybe '${VERSION}' isn't yet released or misspelled?" + echo + exit 1 +fi + +# checking if we need DFSG cleanout, some binary documents may have no sources +check_sourceless_files ${TMPDIR}/i18n +if [ -f ${TMPDIR}/dfsg ]; then + DFSG="+dfsg1" +fi +echo + +################################################################# +# collecting and preparing data for the KiCad libraries tarball # +################################################################# + +# The various component, footprint and 3D-model libraries are available one +# GitHub in various repositories. Uncomment the following two lines to get +# a dynamically created list of repositories. Otherwise it's currently better +# to use the static list as some repositories currently empty like: +# Connectors_Amphenol.pretty + +#PRETTY_REPOS=$(curl https://api.github.com/orgs/KiCad/repos?per_page=2000 2> /dev/null | sed -r 's:.+ "full_name".*"KiCad/(.+\.pretty)",:\1:p;d') +#PRETTY_REPOS=$(echo $PRETTY_REPOS | tr " " "\n" | sort) + +PRETTY_REPOS="\ +Air_Coils_SML_NEOSID.pretty +Battery_Holders.pretty +Buttons_Switches_SMD.pretty +Buttons_Switches_ThroughHole.pretty +Buzzers_Beepers.pretty +Capacitors_SMD.pretty +Capacitors_Tantalum_SMD.pretty +Capacitors_ThroughHole.pretty +Choke_Axial_ThroughHole.pretty +Choke_Common-Mode_Wurth.pretty +Choke_Radial_ThroughHole.pretty +Choke_SMD.pretty +Choke_Toroid_ThroughHole.pretty +Connectors_Harwin.pretty +Connectors_Hirose.pretty +Connectors_JAE.pretty +Connectors_JST.pretty +Connectors_Molex.pretty +Connectors_Multicomp.pretty +Connectors_Phoenix.pretty +Connectors_Samtec.pretty +Connectors_TE-Connectivity.pretty +Connect.pretty +Converters_DCDC_ACDC.pretty +Crystals.pretty +Diodes_SMD.pretty +Diodes_ThroughHole.pretty +Discret.pretty +Display.pretty +Displays_7-Segment.pretty +Divers.pretty +EuroBoard_Outline.pretty +Fiducials.pretty +Filters_HF_Coils_NEOSID.pretty +Fuse_Holders_and_Fuses.pretty +Hall-Effect_Transducers_LEM.pretty +Heatsinks.pretty +Housings_DFN_QFN.pretty +Housings_DIP.pretty +Housings_QFP.pretty +Housings_SIP.pretty +Housings_SOIC.pretty +Housings_SSOP.pretty +Inductors_NEOSID.pretty +Inductors.pretty +IR-DirectFETs.pretty +Labels.pretty +LEDs.pretty +Measurement_Points.pretty +Measurement_Scales.pretty +Mechanical_Sockets.pretty +Microwave.pretty +Mounting_Holes.pretty +NF-Transformers_ETAL.pretty +Oddities.pretty +Opto-Devices.pretty +Oscillators.pretty +PFF_PSF_PSS_Leadforms.pretty +Pin_Headers.pretty +Potentiometers.pretty +Power_Integrations.pretty +Relays_ThroughHole.pretty +Resistors_SMD.pretty +Resistors_ThroughHole.pretty +Resistors_Universal.pretty +RF_Modules.pretty +Shielding_Cabinets.pretty +SMD_Packages.pretty +Sockets_BNC.pretty +Sockets_Mini-Universal.pretty +Sockets_MOLEX_KK-System.pretty +Sockets.pretty +Socket_Strips.pretty +Sockets_WAGO734.pretty +Symbols.pretty +Terminal_Blocks.pretty +TO_SOT_Packages_SMD.pretty +TO_SOT_Packages_THT.pretty +Transformers_CHK.pretty +Transformers_SMPS_ThroughHole.pretty +Transistors_OldSowjetAera.pretty +Valves.pretty +Varistors.pretty +Wire_Connections_Bridges.pretty +Wire_Pads.pretty +" + +# uncomment the follwing variable if you not want to load the long list in +# case for testing something. Booth repositories are different as one has a +# taged versions, the other don't. +#PRETTY_REPOS="\ +#Air_Coils_SML_NEOSID.pretty +#Battery_Holders.pretty" + +for PROJECT in kicad-library $PRETTY_REPOS; do +#for PROJECT in $PRETTY_REPOS; do + print_project_decoration $PROJECT $(expr 4 + ${#PROJECT}) + # check first if we can get a tagged archive, otherwise we take the current master + RET=`curl -L --silent https://github.com/KiCad/${PROJECT}/tags | grep ${VERSION}.tar.gz | awk '{print $2}' | tr '<>"' ' ' | awk '{print $2}'` + if [ "$RET" != "" ]; then + echo "Trying to load tagged version ${VERSION}." + wget ${WGET_OPTIONS} https://github.com/KiCad/${PROJECT}/archive/${VERSION}.tar.gz -O ${TARBALLDIR}/${PROJECT}-${VERSION}.tar.gz + debug "create ${UPSTREAM_LIBRARIES}/${PROJECT}" + mkdir -p ${UPSTREAM_LIBRARIES}/${PROJECT} + debug "extracting ${TARBALLDIR}/${PROJECT}-${VERSION}.tar.gz into ${UPSTREAM_LIBRARIES}/${PROJECT} ... " + rm -rf ${UPSTREAM_LIBRARIES}/${PROJECT}/* + tar xzf ${TARBALLDIR}/${PROJECT}-${VERSION}.tar.gz --strip-components=1 -C ${UPSTREAM_LIBRARIES}/${PROJECT} + echo "Done" + else + echo "No tagged version found, trying master instead." + wget ${WGET_OPTIONS} https://github.com/KiCad/${PROJECT}/archive/master.tar.gz -O ${TARBALLDIR}/${PROJECT}.master.tar.gz + debug "create ${UPSTREAM_LIBRARIES}/${PROJECT}" + mkdir -p ${UPSTREAM_LIBRARIES}/${PROJECT} + debug "extracting ${TARBALLDIR}/${PROJECT}.master.tar.gz into ${UPSTREAM_LIBRARIES}/${PROJECT} ... " + rm -rf ${UPSTREAM_LIBRARIES}/${PROJECT}/* + tar xzf ${TARBALLDIR}/${PROJECT}.master.tar.gz --strip-components=1 -C ${UPSTREAM_LIBRARIES}/${PROJECT} + echo "Done" + fi + echo +done + +# cleaning out VCS control files, don't care about not to scanned folders +echo "removing VCS related control files before packing tarballs ..." +for CLEANING in `find ${TMPDIR} -type f \( -name ".gitignore" -o -name "*.bzrignore" \)`; do + debug "remove ${CLEANING}" + rm ${CLEANING} +done +echo + +######################### +# building the tarballs # +######################### + +# create ${SRCPKG}_${VERSION}${DFSG}.orig-libraries.tar.xz +echo "building ${TMPDIR}/${SRCPKG}_${VERSION}${DFSG}.orig.tar.xz" +cd ${TMPDIR}/${SRCPKG}-${VERSION} ;\ +rm -f ../${SRCPKG}_${VERSION}${DFSG}.orig.tar.xz ;\ +tar -Jcf ../${SRCPKG}_${VERSION}${DFSG}.orig.tar.xz . ;\ +#ls -la ../${SRCPKG}_${VERSION}${DFSG}.orig.tar.xz + +# create ${SRCPKG}_${VERSION}${DFSG}.orig-libraries.tar.xz +echo "building ${TMPDIR}/${SRCPKG}_${VERSION}${DFSG}.orig-doc.tar.xz" +cd ${TMPDIR} ;\ +rm -f ${SRCPKG}_${VERSION}${DFSG}.orig-doc.tar.xz ;\ +tar -Jcf ${SRCPKG}_${VERSION}${DFSG}.orig-doc.tar.xz doc/ ;\ +#ls -la ${SRCPKG}_${VERSION}${DFSG}.orig-doc.tar.xz + +# create ${SRCPKG}_${VERSION}${DFSG}.orig-libraries.tar.xz +echo "building ${TMPDIR}/${SRCPKG}_${VERSION}${DFSG}.orig-i18n.tar.xz" +cd ${TMPDIR} ;\ +rm -f ${SRCPKG}_${VERSION}${DFSG}.orig-i18n.tar.xz ;\ +tar -Jcf ${SRCPKG}_${VERSION}${DFSG}.orig-i18n.tar.xz i18n/ ;\ +#ls -la ${SRCPKG}_${VERSION}${DFSG}.orig-i18n.tar.xz + +# create ${SRCPKG}_${VERSION}${DFSG}.orig-libraries.tar.xz +echo "building ${TMPDIR}/${SRCPKG}_${VERSION}${DFSG}.orig-libraries.tar.xz" +cd ${TMPDIR} ;\ +tar -Jcf ${SRCPKG}_${VERSION}${DFSG}.orig-libraries.tar.xz libraries/ ;\ +#ls -la ${SRCPKG}_${VERSION}${DFSG}.orig-libraries.tar.xz + +exit ${EXIT_SUCCESS} diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 00000000..1ba29ac8 --- /dev/null +++ b/gbp.conf @@ -0,0 +1,21 @@ +# Configuration file for git-buildpackage and friends + +[DEFAULT] +compression = xz +debian-branch = debian/sid +upstream-branch = upstream +components = [ 'doc', 'i18n', 'libraries', ] +pristine-tar = True + +[pq] +patch-numbers = False + +[dch] +id-length = 7 +debian-branch = debian/sid + +[import-orig] +# filter out unwanted files/dirs from upstream +filter = [ '.bzrignore', '*.gitignore', ] +# filter the files out of the tarball passed to pristine-tar +filter-pristine-tar = True diff --git a/kicad-common.install b/kicad-common.install new file mode 100644 index 00000000..125adf26 --- /dev/null +++ b/kicad-common.install @@ -0,0 +1,8 @@ +# install the *.pretty directories +libraries/*.pretty usr/share/kicad/modules +usr/share/doc/kicad/scripts +usr/share/icons +usr/share/kicad +usr/share/locale +usr/share/mime +usr/share/mimelnk diff --git a/kicad-common.links b/kicad-common.links new file mode 100644 index 00000000..18314f37 --- /dev/null +++ b/kicad-common.links @@ -0,0 +1,2 @@ +# source # target +usr/share/kicad/template/fp-lib-table.for-pretty usr/share/kicad/template/fp-lib-table diff --git a/kicad-common.lintian-overrides b/kicad-common.lintian-overrides new file mode 100644 index 00000000..dfe6e8a2 --- /dev/null +++ b/kicad-common.lintian-overrides @@ -0,0 +1,2 @@ +# the warning is true, but we depend on arch specific package python +kicad-common: package-contains-no-arch-dependent-files diff --git a/kicad-doc-ca.doc-base b/kicad-doc-ca.doc-base new file mode 100644 index 00000000..895c0f3e --- /dev/null +++ b/kicad-doc-ca.doc-base @@ -0,0 +1,15 @@ +Document: kicad-doc-ca +Title: Various KiCad documentation +Author: KiCad developer and contributers +Abstract: Documentation and Manuals for the KiCad EDA suite that was build + from the provided source. +Section: Help/HOWTO + +Format: HTML +Index: /usr/share/doc/kicad/help/ca/ +Files: /usr/share/doc/kicad/help/ca/*.html + /usr/share/doc/kicad/help/ca/images/* + +Format: PDF +Files: /usr/share/doc/kicad/help/ca/getting_started_in_kicad.pdf.gz + /usr/share/doc/kicad/help/ca/kicad.pdf.gz diff --git a/kicad-doc-ca.install b/kicad-doc-ca.install new file mode 100644 index 00000000..0c1f1de0 --- /dev/null +++ b/kicad-doc-ca.install @@ -0,0 +1 @@ +usr/share/doc/kicad/help/ca diff --git a/kicad-doc-de.doc-base b/kicad-doc-de.doc-base new file mode 100644 index 00000000..275d13f1 --- /dev/null +++ b/kicad-doc-de.doc-base @@ -0,0 +1,21 @@ +Document: kicad-doc-de +Title: Various KiCad documentation +Author: KiCad developer and contributers +Abstract: Documentation and Manuals for the KiCad EDA suite that was build + from the provided source. +Section: Help/HOWTO + +Format: HTML +Index: /usr/share/doc/kicad/help/de/ +Files: /usr/share/doc/kicad/help/de/*.html + /usr/share/doc/kicad/help/de/images/* + +Format: PDF +Files: /usr/share/doc/kicad/help/de/cvpcb.pdf.gz + /usr/share/doc/kicad/help/de/eeschema.pdf.gz + /usr/share/doc/kicad/help/de/gerbview.pdf.gz + /usr/share/doc/kicad/help/de/getting_started_in_kicad.pdf.gz + /usr/share/doc/kicad/help/de/idf_exporter.pdf.gz + /usr/share/doc/kicad/help/de/kicad.pdf.gz + /usr/share/doc/kicad/help/de/pcbnew.pdf.gz + /usr/share/doc/kicad/help/de/pl_editor.pdf.gz diff --git a/kicad-doc-de.install b/kicad-doc-de.install new file mode 100644 index 00000000..866f8cc0 --- /dev/null +++ b/kicad-doc-de.install @@ -0,0 +1 @@ +usr/share/doc/kicad/help/de diff --git a/kicad-doc-en.doc-base b/kicad-doc-en.doc-base new file mode 100644 index 00000000..4c88035e --- /dev/null +++ b/kicad-doc-en.doc-base @@ -0,0 +1,23 @@ +Document: kicad-doc-en +Title: Various KiCad documentation +Author: KiCad developer and contributers +Abstract: Documentation and Manuals for the KiCad EDA suite that was build + from the provided source. +Section: Help/HOWTO + +Format: HTML +Index: /usr/share/doc/kicad/help/en/ +Files: /usr/share/doc/kicad/help/en/*.html + /usr/share/doc/kicad/help/en/images/* + +Format: PDF +Files: /usr/share/doc/kicad/help/en/cvpcb.pdf.gz + /usr/share/doc/kicad/help/en/eeschema.pdf.gz + /usr/share/doc/kicad/help/en/gerbview.pdf.gz + /usr/share/doc/kicad/help/en/getting_started_in_kicad.pdf.gz + /usr/share/doc/kicad/help/en/gui_translation_howto.pdf.gz + /usr/share/doc/kicad/help/en/idf_exporter.pdf.gz + /usr/share/doc/kicad/help/en/kicad.pdf.gz + /usr/share/doc/kicad/help/en/pcbnew.pdf.gz + /usr/share/doc/kicad/help/en/pl_editor.pdf.gz + /usr/share/doc/kicad/help/en/plugins.pdf.gz diff --git a/kicad-doc-en.install b/kicad-doc-en.install new file mode 100644 index 00000000..35a4fc6a --- /dev/null +++ b/kicad-doc-en.install @@ -0,0 +1 @@ +usr/share/doc/kicad/help/en diff --git a/kicad-doc-es.doc-base b/kicad-doc-es.doc-base new file mode 100644 index 00000000..c83951bd --- /dev/null +++ b/kicad-doc-es.doc-base @@ -0,0 +1,20 @@ +Document: kicad-doc-es +Title: Various KiCad documentation +Author: KiCad developer and contributers +Abstract: Documentation and Manuals for the KiCad EDA suite that was build + from the provided source. +Section: Help/HOWTO + +Format: HTML +Index: /usr/share/doc/kicad/help/es/ +Files: /usr/share/doc/kicad/help/es/*.html + /usr/share/doc/kicad/help/es/images/* + +Format: PDF +Files: /usr/share/doc/kicad/help/es/cvpcb.pdf.gz + /usr/share/doc/kicad/help/es/eeschema.pdf.gz + /usr/share/doc/kicad/help/es/gerbview.pdf.gz + /usr/share/doc/kicad/help/es/getting_started_in_kicad.pdf.gz + /usr/share/doc/kicad/help/es/kicad.pdf.gz + /usr/share/doc/kicad/help/es/pcbnew.pdf.gz + /usr/share/doc/kicad/help/es/pl_editor.pdf.gz diff --git a/kicad-doc-es.install b/kicad-doc-es.install new file mode 100644 index 00000000..8be6d050 --- /dev/null +++ b/kicad-doc-es.install @@ -0,0 +1 @@ +usr/share/doc/kicad/help/es diff --git a/kicad-doc-fr.doc-base b/kicad-doc-fr.doc-base new file mode 100644 index 00000000..6b7884a4 --- /dev/null +++ b/kicad-doc-fr.doc-base @@ -0,0 +1,19 @@ +Document: kicad-doc-fr +Title: Various KiCad documentation +Author: KiCad developer and contributers +Abstract: Documentation and Manuals for the KiCad EDA suite that was build + from the provided source. +Section: Help/HOWTO + +Format: HTML +Index: /usr/share/doc/kicad/help/fr/ +Files: /usr/share/doc/kicad/help/fr/*.html + /usr/share/doc/kicad/help/fr/images/* + +Format: PDF +Files: /usr/share/doc/kicad/help/fr/cvpcb.pdf.gz + /usr/share/doc/kicad/help/fr/eeschema.pdf.gz + /usr/share/doc/kicad/help/fr/getting_started_in_kicad.pdf.gz + /usr/share/doc/kicad/help/fr/kicad.pdf.gz + /usr/share/doc/kicad/help/fr/pcbnew.pdf.gz + /usr/share/doc/kicad/help/fr/pl_editor.pdf.gz diff --git a/kicad-doc-fr.install b/kicad-doc-fr.install new file mode 100644 index 00000000..7e78daf2 --- /dev/null +++ b/kicad-doc-fr.install @@ -0,0 +1 @@ +usr/share/doc/kicad/help/fr diff --git a/kicad-doc-hu.install b/kicad-doc-hu.install new file mode 100644 index 00000000..fc0eaf61 --- /dev/null +++ b/kicad-doc-hu.install @@ -0,0 +1,2 @@ +doc/doc/tutorials/hu/*.pdf usr/share/doc/kicad/tutorials/hu +# doc/doc/help/hu/*.pdf usr/share/doc/kicad/help/hu diff --git a/kicad-doc-it.doc-base b/kicad-doc-it.doc-base new file mode 100644 index 00000000..592cb728 --- /dev/null +++ b/kicad-doc-it.doc-base @@ -0,0 +1,21 @@ +Document: kicad-doc-it +Title: Various KiCad documentation +Author: KiCad developer and contributers +Abstract: Documentation and Manuals for the KiCad EDA suite that was build + from the provided source. +Section: Help/HOWTO + +Format: HTML +Index: /usr/share/doc/kicad/help/it/ +Files: /usr/share/doc/kicad/help/it/*.html + /usr/share/doc/kicad/help/it/images/* + +Format: PDF +Files: /usr/share/doc/kicad/help/it/cvpcb.pdf.gz + /usr/share/doc/kicad/help/it/eeschema.pdf.gz + /usr/share/doc/kicad/help/it/gerbview.pdf.gz + /usr/share/doc/kicad/help/it/getting_started_in_kicad.pdf.gz + /usr/share/doc/kicad/help/it/idf_exporter.pdf.gz + /usr/share/doc/kicad/help/it/kicad.pdf.gz + /usr/share/doc/kicad/help/it/pcbnew.pdf.gz + /usr/share/doc/kicad/help/it/pl_editor.pdf.gz diff --git a/kicad-doc-it.install b/kicad-doc-it.install new file mode 100644 index 00000000..ae98c3ec --- /dev/null +++ b/kicad-doc-it.install @@ -0,0 +1 @@ +usr/share/doc/kicad/help/it diff --git a/kicad-doc-ja.doc-base b/kicad-doc-ja.doc-base new file mode 100644 index 00000000..0529c459 --- /dev/null +++ b/kicad-doc-ja.doc-base @@ -0,0 +1,21 @@ +Document: kicad-doc-ja +Title: Various KiCad documentation +Author: KiCad developer and contributers +Abstract: Documentation and Manuals for the KiCad EDA suite that was build + from the provided source. +Section: Help/HOWTO + +Format: HTML +Index: /usr/share/doc/kicad/help/ja/ +Files: /usr/share/doc/kicad/help/ja/*.html + /usr/share/doc/kicad/help/ja/images/* + +Format: PDF +Files: /usr/share/doc/kicad/help/ja/cvpcb.pdf.gz + /usr/share/doc/kicad/help/ja/eeschema.pdf.gz + /usr/share/doc/kicad/help/ja/gerbview.pdf.gz + /usr/share/doc/kicad/help/ja/getting_started_in_kicad.pdf.gz + /usr/share/doc/kicad/help/ja/idf_exporter.pdf.gz + /usr/share/doc/kicad/help/ja/kicad.pdf.gz + /usr/share/doc/kicad/help/ja/pcbnew.pdf.gz + /usr/share/doc/kicad/help/ja/pl_editor.pdf.gz diff --git a/kicad-doc-ja.install b/kicad-doc-ja.install new file mode 100644 index 00000000..aa66f084 --- /dev/null +++ b/kicad-doc-ja.install @@ -0,0 +1 @@ +usr/share/doc/kicad/help/ja diff --git a/kicad-doc-nl.doc-base b/kicad-doc-nl.doc-base new file mode 100644 index 00000000..bd5bedff --- /dev/null +++ b/kicad-doc-nl.doc-base @@ -0,0 +1,13 @@ +Document: kicad-doc-nl +Title: Various KiCad documentation +Author: KiCad developer and contributers +Abstract: Documentation and Manuals for the KiCad EDA suite that was build + from the provided source. +Section: Help/HOWTO + +Format: HTML +Index: /usr/share/doc/kicad/help/nl/ +Files: /usr/share/doc/kicad/help/nl/*.html + +Format: PDF +Files: /usr/share/doc/kicad/help/nl/getting_started_in_kicad.pdf.gz diff --git a/kicad-doc-nl.install b/kicad-doc-nl.install new file mode 100644 index 00000000..d4e56a73 --- /dev/null +++ b/kicad-doc-nl.install @@ -0,0 +1 @@ +usr/share/doc/kicad/help/nl diff --git a/kicad-doc-pl.doc-base b/kicad-doc-pl.doc-base new file mode 100644 index 00000000..dac9da14 --- /dev/null +++ b/kicad-doc-pl.doc-base @@ -0,0 +1,21 @@ +Document: kicad-doc-pl +Title: Various KiCad documentation +Author: KiCad developer and contributers +Abstract: Documentation and Manuals for the KiCad EDA suite that was build + from the provided source. +Section: Help/HOWTO + +Format: HTML +Index: /usr/share/doc/kicad/help/pl/ +Files: /usr/share/doc/kicad/help/pl/*.html + /usr/share/doc/kicad/help/pl/images/* + +Format: PDF +Files: /usr/share/doc/kicad/help/pl/cvpcb.pdf.gz + /usr/share/doc/kicad/help/pl/eeschema.pdf.gz + /usr/share/doc/kicad/help/pl/gerbview.pdf.gz + /usr/share/doc/kicad/help/pl/getting_started_in_kicad.pdf.gz + /usr/share/doc/kicad/help/pl/idf_exporter.pdf.gz + /usr/share/doc/kicad/help/pl/kicad.pdf.gz + /usr/share/doc/kicad/help/pl/pcbnew.pdf.gz + /usr/share/doc/kicad/help/pl/pl_editor.pdf.gz diff --git a/kicad-doc-pl.install b/kicad-doc-pl.install new file mode 100644 index 00000000..7e9cfd2f --- /dev/null +++ b/kicad-doc-pl.install @@ -0,0 +1 @@ +usr/share/doc/kicad/help/pl diff --git a/kicad-doc-pt.install b/kicad-doc-pt.install new file mode 100644 index 00000000..f43d200e --- /dev/null +++ b/kicad-doc-pt.install @@ -0,0 +1 @@ +doc/doc/help/pt/*.pdf usr/share/doc/kicad/help/pt diff --git a/kicad-doc-ru.doc-base b/kicad-doc-ru.doc-base new file mode 100644 index 00000000..3ef40024 --- /dev/null +++ b/kicad-doc-ru.doc-base @@ -0,0 +1,19 @@ +Document: kicad-doc-ru +Title: Various KiCad documentation +Author: KiCad developer and contributers +Abstract: Documentation and Manuals for the KiCad EDA suite that was build + from the provided source. +Section: Help/HOWTO + +Format: HTML +Index: /usr/share/doc/kicad/help/ru/ +Files: /usr/share/doc/kicad/help/ru/*.html + /usr/share/doc/kicad/help/ru/images/* + +Format: PDF +Files: /usr/share/doc/kicad/help/ru/cvpcb.pdf.gz + /usr/share/doc/kicad/help/ru/gerbview.pdf.gz + /usr/share/doc/kicad/help/ru/getting_started_in_kicad.pdf.gz + /usr/share/doc/kicad/help/ru/idf_exporter.pdf.gz + /usr/share/doc/kicad/help/ru/kicad.pdf.gz + /usr/share/doc/kicad/help/ru/pl_editor.pdf.gz diff --git a/kicad-doc-ru.install b/kicad-doc-ru.install new file mode 100644 index 00000000..391f3341 --- /dev/null +++ b/kicad-doc-ru.install @@ -0,0 +1 @@ +usr/share/doc/kicad/help/ru diff --git a/kicad-doc-zh-cn.install b/kicad-doc-zh-cn.install new file mode 100644 index 00000000..498f1648 --- /dev/null +++ b/kicad-doc-zh-cn.install @@ -0,0 +1 @@ +doc/doc/tutorials/zh_CN/*.pdf usr/share/doc/kicad/tutorials/zh_CN diff --git a/kicad.desktop b/kicad.desktop new file mode 100644 index 00000000..43dd35fb --- /dev/null +++ b/kicad.desktop @@ -0,0 +1,19 @@ +[Desktop Entry] +Name=KiCad +Comment=Create/Modify/View of PCB's +GenericName=EDA Software Suite +Exec=kicad %f +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=kicad +Categories=Science;Education;Development;Electronics; +MimeType=application/x-kicad-project; +StartupWMClass=KiCad +StartupNotify=true +Name[de]=Entwicklung und Bearbeiten von PCB's mit KiCad +Name[fr]=Suite logicielle de conception électronique +Comment[de]=Entwicklung von gedruckten elektronsichen Schaltungen +Comment[fr]=Concevoir un circuit imprimé +GenericName[de]=EDA Software Lösung +Keywords=EDA,KiCad,Kicad, diff --git a/kicad.install b/kicad.install new file mode 100644 index 00000000..b44f0c6f --- /dev/null +++ b/kicad.install @@ -0,0 +1,22 @@ +bitmaps_png/icons/kicad.xpm usr/share/pixmaps +usr/bin/_cvpcb.kiface usr/lib/kicad +usr/bin/_eeschema.kiface usr/lib/kicad +usr/bin/_gerbview.kiface usr/lib/kicad +usr/bin/_pcb_calculator.kiface usr/lib/kicad +usr/bin/_pcbnew.kiface usr/lib/kicad +usr/bin/_pl_editor.kiface usr/lib/kicad +usr/bin/bitmap2component +usr/bin/dxf2idf +usr/bin/eeschema +usr/bin/gerbview +usr/bin/idf2vrml +usr/bin/idfcyl +usr/bin/idfrect +usr/bin/kicad +usr/bin/pcb_calculator +usr/bin/pcbnew +usr/bin/pl_editor +usr/lib/kicad +usr/lib/python2.7/dist-packages +usr/share/applications +debian/man/* usr/share/man/man1 diff --git a/kicad.links b/kicad.links new file mode 100644 index 00000000..d1d9231f --- /dev/null +++ b/kicad.links @@ -0,0 +1,7 @@ +# source # target +usr/lib/kicad/_cvpcb.kiface usr/bin/_cvpcb.kiface +usr/lib/kicad/_eeschema.kiface usr/bin/_eeschema.kiface +usr/lib/kicad/_gerbview.kiface usr/bin/_gerbview.kiface +usr/lib/kicad/_pcb_calculator.kiface usr/bin/_pcb_calculator.kiface +usr/lib/kicad/_pcbnew.kiface usr/bin/_pcbnew.kiface +usr/lib/kicad/_pl_editor.kiface usr/bin/_pl_editor.kiface diff --git a/kicad.lintian-overrides b/kicad.lintian-overrides new file mode 100644 index 00000000..0c9bc17f --- /dev/null +++ b/kicad.lintian-overrides @@ -0,0 +1,10 @@ +# Those files are the libraries and no executables. +kicad: binary-without-manpage usr/bin/_cvpcb.kiface +kicad: binary-without-manpage usr/bin/_eeschema.kiface +kicad: binary-without-manpage usr/bin/_gerbview.kiface +kicad: binary-without-manpage usr/bin/_pcb_calculator.kiface +kicad: binary-without-manpage usr/bin/_pcbnew.kiface +kicad: binary-without-manpage usr/bin/_pl_editor.kiface +# Lintian doesn't check that with much intelligence +kicad: spelling-error-in-binary usr/lib/kicad/_pcbnew.kiface allows to allows one to +kicad: spelling-error-in-binary usr/lib/python2.7/dist-packages/_pcbnew.*.so allows to allows one to diff --git a/kicad.manpages b/kicad.manpages new file mode 100644 index 00000000..13cdaf4b --- /dev/null +++ b/kicad.manpages @@ -0,0 +1 @@ +debian/man/*.1 diff --git a/man/bitmap2component.1 b/man/bitmap2component.1 new file mode 100644 index 00000000..20b0f043 --- /dev/null +++ b/man/bitmap2component.1 @@ -0,0 +1,18 @@ +.TH bitmap2component 1 "January 19, 2017" "bitmap2component" + +.SH NAME +bitmap2component \- converts a bitmap graphic into a footprint or component. + +.SH DESCRIPTION +.PP +.B bitmap2component +The bitmap2component can create a footprint or a component from black/white +bitmap graphic or a logo. It's possible to create a output file for eeschema +(*.lib), pcbnew (*.kicad_mod), postscript (*.ps) or the pl_editor +(*.kicad-wks). + +.SH SYNOPSIS +.B bitmap2component + +.SH AUTHOR +Carsten Schoenert diff --git a/man/cvpcb.1 b/man/cvpcb.1 new file mode 100644 index 00000000..30d1a090 --- /dev/null +++ b/man/cvpcb.1 @@ -0,0 +1,18 @@ +.TH cvpcb 1 "June 15, 2007" "cvpcb" + +.SH NAME +cvpcb \- assign components to a netlist. + +.SH DESCRIPTION +.PP +.B cvpcb +allows you to assign each component that appears in the netlist to a component +footprint which will represent it on a PCB and adds this information to the +netlist. + +.SH SYNOPSIS +.B cvpcb +.RI [ netlist ] + +.SH AUTHOR +Richard Antony Burton diff --git a/man/dxf2idf.1 b/man/dxf2idf.1 new file mode 100644 index 00000000..4702b7b2 --- /dev/null +++ b/man/dxf2idf.1 @@ -0,0 +1,16 @@ +.TH dxf2idf 1 "January 19, 2017" "dxf2idf" + +.SH NAME +dxf2idf \- creates an IDF component outline file from a dxf file. + +.SH DESCRIPTION +.PP +.B dxf2idf +This program takes line, arc, and circle segments from a DXF file and creates +an IDF component outline file. dxf2idf is part of the KiCad suite. + +.SH SYNOPSIS +.B dxf2idf + +.SH AUTHOR +Carsten Schoenert diff --git a/man/eeschema.1 b/man/eeschema.1 new file mode 100644 index 00000000..ed7a12b4 --- /dev/null +++ b/man/eeschema.1 @@ -0,0 +1,22 @@ +.TH eeschema 1 "June 15, 2007" "eeschema" + +.SH NAME +eeschema \- a powerful schematic capture application. + +.SH DESCRIPTION +.PP +.B eeschema +integrates the functions of drawing, control, layout, library management and +access to the PCB design software. It also allows hierarchical drawings, using +multi-sheets diagrams. It is intended to work with printed circuit software such +as pcbnew, to which it will provide the netlist file. Eeschema also integrates a +component editor which allows the creation, editing and visualization of +components, as well as the handling of the symbol libraries (import, export, +addition and deletion of library components). + +.SH SYNOPSIS +.B eeschema +.RI [ schematic ] + +.SH AUTHOR +Richard Antony Burton diff --git a/man/gerbview.1 b/man/gerbview.1 new file mode 100644 index 00000000..411bae74 --- /dev/null +++ b/man/gerbview.1 @@ -0,0 +1,11 @@ +.TH gerbview 1 "June 15, 2007" "gerbview" + +.SH NAME +gerbview \- viewer for GERBER format files. + +.SH SYNOPSIS +.B gerbview +.RI [ gerberfile ] + +.SH AUTHOR +Richard Antony Burton diff --git a/man/idf2vrml.1 b/man/idf2vrml.1 new file mode 100644 index 00000000..c5d371c0 --- /dev/null +++ b/man/idf2vrml.1 @@ -0,0 +1,46 @@ +.TH idf2vrml 1 "June 19, 2017" "idf2vrml" + +.SH NAME +idf2vrml \- create a VRML file from IDF Board (.emn) and one IDF Component file (.emp). + +.SH DESCRIPTION +.PP +.B idf2vrml +The idf2vrml tool reads a set of one IDF Board (.emn) and one IDF Component +file (.emp) and produces a VRML file which can be viewed with a VRML viewer. +idf2vrml is part of the KiCad suite. + +.SH SYNOPSIS +.B idf2vrml +\-f input_file.emn \-s scale_factor [\-k] [\-d] [\-z] [\-m] + +.SH OPTIONS +.TP +.B \-k +produce KiCad-friendly VRML output; default is compact VRML + +.TP +.B \-d +suppress substitution of default outlines + +.TP +.B \-z +suppress rendering of zero-height outlines + +.TP +.B \-m +print object mapping to stdout for debugging purposes + +.SH EXAMPLE +.sp +Tto produce a model for use by KiCad: +.sp +.if n \{\ +.RS 4 +.\} +.nf +idf2vrml \-f input.emn \-s 0.3937008 -k +.fi + +.SH AUTHOR +Carsten Schoenert diff --git a/man/idfcyl.1 b/man/idfcyl.1 new file mode 100644 index 00000000..3b7fda55 --- /dev/null +++ b/man/idfcyl.1 @@ -0,0 +1,18 @@ +.TH idfcyl 1 "January 19, 2017" "idfcyl" + +.SH NAME +idfcyl \- generates an outline for a cylindrical component. + +.SH DESCRIPTION +.PP +.B idfcyl +This program generates an outline for a cylindrical component. The cylinder +may be horizontal or vertical. A horizontal cylinder may have wires at one or +both ends. A vertical cylinder may have at most one wire which may be placed +on the left or right side. idfcyl is part of the KiCad suite. + +.SH SYNOPSIS +.B idfcyl + +.SH AUTHOR +Carsten Schoenert diff --git a/man/idfrect.1 b/man/idfrect.1 new file mode 100644 index 00000000..c2c8543a --- /dev/null +++ b/man/idfrect.1 @@ -0,0 +1,17 @@ +.TH idfrect 1 "January 19, 2017" "idfrect" + +.SH NAME +idfrect \- generates an outline for a rectangular component. + +.SH DESCRIPTION +.PP +.B idfrect +This program generates an outline for a rectangular component. The component +may have a single lead (axial) or a chamfer on the upper left corner. idfrect +is part of the KiCad suite. + +.SH SYNOPSIS +.B idfrect + +.SH AUTHOR +Carsten Schoenert diff --git a/man/kicad.1 b/man/kicad.1 new file mode 100644 index 00000000..6bb32de4 --- /dev/null +++ b/man/kicad.1 @@ -0,0 +1,17 @@ +.TH kicad 1 "June 15, 2007" "kicad" + +.SH NAME +kicad \- manager application for Kicad projects. + +.SH DESCRIPTION +.PP +The kicad utility program is a project manager that facilitates the use of the +various programs required to draw schematics, lay out PCBs, generate and check +the production files. + +.SH SYNOPSIS +.B kicad +.RI [ project ] + +.SH AUTHOR +Richard Antony Burton diff --git a/man/pcb_calculator.1 b/man/pcb_calculator.1 new file mode 100644 index 00000000..ecf4ac9e --- /dev/null +++ b/man/pcb_calculator.1 @@ -0,0 +1,17 @@ +.TH pcb_caculator 1 "January 19, 2017" "pcb_caculator" + +.SH NAME +pcb_caculator \- tools for calculating the environment on a PCB. + +.SH DESCRIPTION +.PP +.B pcb_caculator +A tool for planing and calculating the width of traces, voltage regulators, for +electrical spacings and RF Attenuators. Also information about color codes for +resistors and information about board classes are shown. + +.SH SYNOPSIS +.B pcb_caculator + +.SH AUTHOR +Carsten Schoenert diff --git a/man/pcbnew.1 b/man/pcbnew.1 new file mode 100644 index 00000000..c89e9b4d --- /dev/null +++ b/man/pcbnew.1 @@ -0,0 +1,17 @@ +.TH pcbnew 1 "June 15, 2007" "pcbnew" + +.SH NAME +pcbnew \- a powerful printed circuit board editor. + +.B pcbnew +manages libraries of modules. Each module is a drawing of the physical +component, including its footprint, and the layout of pads providing connections +to the component. The required modules are automatically loaded during the +reading of the netlist produced by pcbnew. + +.SH SYNOPSIS +.B pcbnew +.RI [ boardfile ] + +.SH AUTHOR +Richard Antony Burton diff --git a/man/pl_editor.1 b/man/pl_editor.1 new file mode 100644 index 00000000..06b75ef4 --- /dev/null +++ b/man/pl_editor.1 @@ -0,0 +1,19 @@ +.TH pl_editor 1 "January 15, 2017" "pl_editor" + +.SH NAME +pl_editor \- editor tool to create custom title blocks and frame references. + +.B pl_editor +By the pl_editor the title block and the complete layout of a working sheet in +eeschema and pcbnew can be fully customized. The editor can modify some basic +page layout items like lines, rectangles, texts (with format symbols, that will +be replaced by the actual text, like the date, page number…) and also polygons +(mainly to place logos and special graphic shapes) and bitmaps. Text can be +angled in any way. + +.SH SYNOPSIS +.B pl_editor +.RI [ layoutfile ] + +.SH AUTHOR +Carsten Schoenert diff --git a/patches/debian-hacks/Adding-needed-SVG-files-and-additinal-arrays.patch b/patches/debian-hacks/Adding-needed-SVG-files-and-additinal-arrays.patch new file mode 100644 index 00000000..f00ea831 --- /dev/null +++ b/patches/debian-hacks/Adding-needed-SVG-files-and-additinal-arrays.patch @@ -0,0 +1,523 @@ +From: Georges Khaznadar +Date: Sat, 3 Sep 2016 17:57:10 +0200 +Subject: Adding needed SVG files and additinal arrays + +Adding two SVG files and the additional string arrays due the upstream +files are not DFSG clean. +--- + bitmaps_png/cpp_26/find.cpp | 79 ++++++++++++++++ + bitmaps_png/cpp_26/find_replace.cpp | 97 +++++++++++++++++++ + bitmaps_png/sources/find.svg | 127 +++++++++++++++++++++++++ + bitmaps_png/sources/find_replace.svg | 179 +++++++++++++++++++++++++++++++++++ + 4 files changed, 482 insertions(+) + create mode 100644 bitmaps_png/cpp_26/find.cpp + create mode 100644 bitmaps_png/cpp_26/find_replace.cpp + create mode 100644 bitmaps_png/sources/find.svg + create mode 100644 bitmaps_png/sources/find_replace.svg + +diff --git a/bitmaps_png/cpp_26/find.cpp b/bitmaps_png/cpp_26/find.cpp +new file mode 100644 +index 00000000..ffb88d44 +--- /dev/null ++++ b/bitmaps_png/cpp_26/find.cpp +@@ -0,0 +1,79 @@ ++ ++/* Do not modify this file, it was automatically generated by the ++ * PNG2cpp CMake script, using a *.png file as input. ++ */ ++ ++#include ++ ++static const unsigned char png[] = { ++ 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, ++ 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, ++ 0xce, 0x00, 0x00, 0x03, 0xd8, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xc5, 0x96, 0x5d, 0x4c, 0x53, ++ 0x77, 0x18, 0xc6, 0x8b, 0x71, 0xb2, 0xcd, 0xab, 0xed, 0xc2, 0x1b, 0x33, 0x97, 0x25, 0x4e, 0x83, ++ 0x3d, 0x47, 0xdd, 0xad, 0xc9, 0xbc, 0xf0, 0xd6, 0xcc, 0x65, 0xbb, 0x58, 0x96, 0x99, 0xdd, 0xec, ++ 0x62, 0x73, 0x31, 0x22, 0xdb, 0x92, 0x5d, 0xe9, 0x52, 0xfc, 0x80, 0x9e, 0x16, 0x6d, 0x4b, 0xb0, ++ 0x85, 0xd2, 0x8f, 0x73, 0x4a, 0x90, 0x95, 0x42, 0x44, 0xb4, 0x8c, 0x16, 0x28, 0xb1, 0xd5, 0x56, ++ 0xe8, 0x70, 0x7c, 0x74, 0x40, 0x69, 0xa1, 0xa5, 0xd9, 0x18, 0x23, 0x48, 0xd6, 0x1e, 0x3e, 0xb4, ++ 0x85, 0x3e, 0x7b, 0xcf, 0xc9, 0x34, 0x31, 0x8b, 0x5b, 0xbb, 0x74, 0xf1, 0x24, 0x6f, 0x72, 0x72, ++ 0x92, 0xff, 0xf9, 0xfd, 0x9f, 0xe7, 0x7d, 0xfe, 0xef, 0x39, 0x0a, 0xc5, 0x8b, 0xbc, 0x2c, 0x16, ++ 0xcb, 0xeb, 0x4d, 0x4d, 0x4d, 0x95, 0x82, 0x20, 0x04, 0xec, 0x76, 0x7b, 0x8a, 0xea, 0x37, 0xba, ++ 0x1f, 0xb3, 0xd9, 0x6c, 0xea, 0xe6, 0xe6, 0xe6, 0x8a, 0x52, 0x41, 0xce, 0x5a, 0xad, 0x56, 0xd1, ++ 0xe7, 0xf3, 0xad, 0xcd, 0xcc, 0xcc, 0x60, 0x7a, 0x7a, 0x5a, 0x2e, 0xe9, 0x7e, 0x78, 0x78, 0x38, ++ 0xc7, 0xf3, 0xfc, 0x2a, 0xd5, 0x75, 0x87, 0xc3, 0xb1, 0xf3, 0x3f, 0x43, 0x68, 0xe7, 0x76, 0x97, ++ 0xcb, 0x25, 0x26, 0x12, 0x09, 0x74, 0xb9, 0x7b, 0xd0, 0xe0, 0x0d, 0x80, 0xbb, 0x3b, 0x8e, 0x9a, ++ 0x40, 0x04, 0x86, 0xc1, 0x30, 0x5a, 0xba, 0x6e, 0x63, 0x72, 0x72, 0x12, 0x7e, 0xbf, 0x7f, 0x83, ++ 0xd4, 0xc5, 0x8d, 0x46, 0xe3, 0x6b, 0x45, 0x43, 0x68, 0xe1, 0xb7, 0x9d, 0x9d, 0x9d, 0xe2, 0xd4, ++ 0xd4, 0x14, 0x4c, 0xbd, 0x77, 0x50, 0x1d, 0x8e, 0xa1, 0xff, 0xe1, 0x0a, 0xc2, 0x1b, 0x19, 0xfc, ++ 0xf8, 0x48, 0x44, 0x70, 0x35, 0x03, 0x3e, 0xfe, 0x2b, 0xb4, 0x81, 0x9f, 0x30, 0x30, 0x38, 0x88, ++ 0xa1, 0xa1, 0xa1, 0xc7, 0xa4, 0x2c, 0x08, 0xa0, 0xac, 0x60, 0x88, 0xc9, 0x64, 0xda, 0x45, 0x20, ++ 0x71, 0x7e, 0x7e, 0x1e, 0x26, 0xcf, 0x1d, 0xd4, 0x8d, 0x25, 0xf1, 0xe0, 0xb1, 0x88, 0x9f, 0xb1, ++ 0xfe, 0x4c, 0x45, 0xb6, 0xd6, 0xe0, 0x59, 0x5e, 0x41, 0xcd, 0xbd, 0x09, 0x8c, 0x8c, 0x8c, 0x80, ++ 0x36, 0x96, 0x31, 0x9b, 0xcd, 0x1f, 0x15, 0x0c, 0xa2, 0x06, 0x7f, 0x13, 0x08, 0x04, 0x36, 0xba, ++ 0xdc, 0x3f, 0xe0, 0xfc, 0x7d, 0xea, 0xc5, 0x5a, 0xe6, 0x6f, 0x90, 0x27, 0x35, 0x41, 0x30, 0x5b, ++ 0x6c, 0x01, 0x66, 0x77, 0x1f, 0x66, 0x67, 0x67, 0x41, 0xaa, 0x46, 0x0a, 0x06, 0x51, 0xa2, 0x42, ++ 0xd2, 0xa2, 0x46, 0xaf, 0x1f, 0xc6, 0x48, 0x0a, 0x63, 0xb9, 0xd5, 0xe7, 0x82, 0xa4, 0x0a, 0x8a, ++ 0x69, 0xd4, 0x04, 0x27, 0xe5, 0x90, 0x50, 0x78, 0x36, 0xea, 0xeb, 0xeb, 0xcb, 0x0b, 0x02, 0xd1, ++ 0xae, 0x52, 0x52, 0x00, 0x74, 0x81, 0x51, 0xb4, 0xc5, 0x17, 0x31, 0xb6, 0xb9, 0xf6, 0x8f, 0xa0, ++ 0xf0, 0x7a, 0x06, 0xd5, 0xf7, 0xe5, 0x14, 0xa2, 0xb5, 0xb5, 0xf5, 0x0f, 0x72, 0xe4, 0xad, 0x42, ++ 0x41, 0x89, 0xb9, 0xb9, 0x39, 0xe8, 0xa9, 0xd1, 0xc2, 0xf4, 0x02, 0x46, 0xb3, 0xff, 0xa2, 0x28, ++ 0x43, 0xa0, 0x50, 0x54, 0xee, 0x13, 0xc5, 0x3c, 0x4d, 0x3d, 0xde, 0x5d, 0xa8, 0x75, 0x03, 0xf1, ++ 0x78, 0x1c, 0xe6, 0x1e, 0x1f, 0xf4, 0x14, 0x84, 0x60, 0x26, 0x8d, 0xc8, 0x73, 0x20, 0x92, 0xad, ++ 0x1d, 0x73, 0x8b, 0xe0, 0xee, 0x45, 0x20, 0xad, 0xa1, 0x33, 0xb7, 0xae, 0x52, 0xa9, 0xb6, 0x17, ++ 0x04, 0xa2, 0xe4, 0x7c, 0xe6, 0xf5, 0x7a, 0xc5, 0xbe, 0x01, 0x1f, 0xce, 0xd3, 0x4e, 0x5d, 0xf1, ++ 0xdf, 0xc9, 0x1e, 0x11, 0x13, 0xf9, 0x67, 0x21, 0xa3, 0x04, 0xf1, 0x2d, 0xad, 0xe0, 0x52, 0x38, ++ 0x0e, 0xfe, 0xa6, 0x5b, 0xee, 0x11, 0xb9, 0xe1, 0x2d, 0x38, 0x0c, 0x34, 0x6e, 0x5e, 0xa5, 0x78, ++ 0x2f, 0x4b, 0xf1, 0xb6, 0xde, 0xea, 0xa5, 0xe4, 0xc5, 0xe0, 0x8c, 0x2d, 0x62, 0x60, 0x71, 0x19, ++ 0x43, 0x74, 0x7e, 0xa4, 0x14, 0x06, 0xd3, 0x69, 0xdc, 0x4a, 0x2e, 0x41, 0xfb, 0x20, 0x01, 0x83, ++ 0x6f, 0x18, 0xd1, 0x68, 0x14, 0x0e, 0xc1, 0x8a, 0x66, 0xfd, 0x27, 0x97, 0x8b, 0x3a, 0xb0, 0xa4, ++ 0xea, 0x04, 0xf9, 0x2d, 0x26, 0x93, 0x49, 0xd8, 0x6f, 0xf6, 0xe0, 0xbb, 0xe0, 0x14, 0x34, 0xf4, ++ 0x52, 0xe3, 0x44, 0x0a, 0x8d, 0x94, 0x44, 0xdd, 0x68, 0x12, 0xe7, 0x42, 0x33, 0xb8, 0xe6, 0xf1, ++ 0x63, 0x7c, 0x7c, 0x1c, 0xee, 0xdb, 0x5d, 0x68, 0x69, 0xac, 0x82, 0xa0, 0x61, 0x37, 0xed, 0x1c, ++ 0xf3, 0x69, 0x51, 0x30, 0xf2, 0xfb, 0xb4, 0x34, 0xcb, 0x62, 0xb1, 0x18, 0x42, 0xa1, 0x10, 0x6c, ++ 0x34, 0x72, 0xa4, 0x31, 0x54, 0xdf, 0x1f, 0x44, 0x53, 0x77, 0x2f, 0x3c, 0x7d, 0xfd, 0x90, 0x42, ++ 0xd3, 0xe1, 0xba, 0x0e, 0xa3, 0xae, 0x0a, 0x17, 0x4e, 0x6d, 0x47, 0xfb, 0xd5, 0xbd, 0xe0, 0x09, ++ 0xc6, 0x73, 0xec, 0xc9, 0xa2, 0x60, 0x14, 0xd5, 0x77, 0x69, 0xe4, 0x45, 0xdb, 0xda, 0xda, 0xd2, ++ 0xe1, 0x70, 0x38, 0x27, 0xcd, 0x36, 0xa9, 0x17, 0xa4, 0x22, 0xdf, 0xdd, 0xdd, 0x9d, 0xb1, 0x5a, ++ 0x4c, 0x5b, 0x2d, 0x0d, 0x27, 0x73, 0x75, 0x5f, 0xef, 0x44, 0xf5, 0x17, 0x65, 0x04, 0xdb, 0x06, ++ 0x27, 0xc1, 0x64, 0x65, 0x6a, 0xe5, 0xc7, 0x45, 0xc1, 0xa4, 0xf9, 0x45, 0x56, 0x1e, 0x21, 0xe8, ++ 0x65, 0x52, 0x78, 0x83, 0x52, 0xd9, 0x43, 0x6a, 0xaf, 0xd1, 0xb3, 0x0f, 0x2c, 0x0d, 0x1f, 0xbe, ++ 0xe9, 0xd0, 0xb0, 0xb3, 0xdf, 0xeb, 0x98, 0x6c, 0xdd, 0x57, 0xaf, 0x40, 0x45, 0xb0, 0x8b, 0x5f, ++ 0x12, 0x4c, 0xb7, 0x0f, 0x0e, 0x8e, 0xcd, 0x09, 0x6a, 0xf6, 0xfd, 0x92, 0x7d, 0xaf, 0x84, 0xab, ++ 0x87, 0x76, 0x0b, 0x1a, 0x26, 0x25, 0xc1, 0xb4, 0x55, 0x2f, 0x3f, 0x85, 0xb5, 0x1b, 0xde, 0xce, ++ 0x0b, 0x04, 0x23, 0x65, 0xef, 0x95, 0x0c, 0x66, 0xbb, 0xc2, 0xbc, 0x41, 0xb0, 0x5f, 0x9c, 0x3a, ++ 0x65, 0x96, 0x3b, 0x5b, 0x2e, 0xdb, 0x28, 0xc3, 0x74, 0xfb, 0x64, 0x18, 0xaf, 0x66, 0x8e, 0x97, ++ 0x0c, 0xe6, 0x50, 0x2b, 0xf7, 0x38, 0xb4, 0xcc, 0x82, 0x53, 0xcf, 0x64, 0xb9, 0xca, 0x72, 0xa8, ++ 0x3e, 0x57, 0xc8, 0xb0, 0x0e, 0xc3, 0xfe, 0x3c, 0xcf, 0x31, 0x59, 0x5b, 0xad, 0xf2, 0x58, 0xc9, ++ 0x60, 0x2d, 0xb5, 0xca, 0xbd, 0x02, 0xc7, 0x2c, 0xb5, 0xeb, 0x95, 0xb9, 0xda, 0x33, 0x3b, 0xc8, ++ 0x46, 0xc5, 0x5f, 0x36, 0x56, 0xe4, 0x79, 0x0d, 0xf3, 0x88, 0x57, 0xb3, 0x47, 0x4b, 0x06, 0xb3, ++ 0x72, 0x07, 0xf7, 0x93, 0x8d, 0x0f, 0x25, 0x58, 0xcd, 0x99, 0x97, 0xc0, 0x55, 0xee, 0x40, 0x9f, ++ 0xfd, 0x10, 0x25, 0x91, 0xa1, 0x33, 0xa6, 0x54, 0x97, 0xf4, 0x87, 0xe6, 0x09, 0xcc, 0xa9, 0xaf, ++ 0xd8, 0xf4, 0x58, 0x0f, 0x43, 0xd0, 0xb2, 0x59, 0x3a, 0x5b, 0x36, 0x40, 0x51, 0xa6, 0x28, 0xf5, ++ 0x65, 0x57, 0xb3, 0x2c, 0xd9, 0x95, 0xa6, 0xda, 0xfa, 0xdf, 0x20, 0x4f, 0xa3, 0x5f, 0x7b, 0xe0, ++ 0x1d, 0x0a, 0x82, 0x41, 0xa5, 0x52, 0x6c, 0x7b, 0x21, 0xff, 0x8a, 0x7f, 0x02, 0x05, 0x4a, 0x66, ++ 0x15, 0x2e, 0x24, 0x08, 0x7d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, ++ 0x82, ++}; ++ ++const BITMAP_OPAQUE find_xpm[1] = {{ png, sizeof( png ), "find_xpm" }}; ++ ++//EOF +diff --git a/bitmaps_png/cpp_26/find_replace.cpp b/bitmaps_png/cpp_26/find_replace.cpp +new file mode 100644 +index 00000000..1f11867b +--- /dev/null ++++ b/bitmaps_png/cpp_26/find_replace.cpp +@@ -0,0 +1,97 @@ ++ ++/* Do not modify this file, it was automatically generated by the ++ * PNG2cpp CMake script, using a *.png file as input. ++ */ ++ ++#include ++ ++static const unsigned char png[] = { ++ 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, ++ 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, ++ 0xce, 0x00, 0x00, 0x04, 0xfb, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xc5, 0x96, 0x7b, 0x4c, 0x53, ++ 0x57, 0x1c, 0xc7, 0x6f, 0x51, 0x20, 0x38, 0xe6, 0x9c, 0x2d, 0xcc, 0x09, 0x92, 0xa1, 0xa8, 0x71, ++ 0x6d, 0x9d, 0xce, 0x65, 0x7f, 0x6c, 0x99, 0x99, 0xcb, 0x9e, 0xea, 0x9c, 0x46, 0xc1, 0x6d, 0x6e, ++ 0x2e, 0xd3, 0x4d, 0xe3, 0xe6, 0x2b, 0x2e, 0xc3, 0xbd, 0x74, 0x45, 0x27, 0xb4, 0xb2, 0x85, 0x42, ++ 0xb4, 0x15, 0x68, 0x69, 0x0b, 0x41, 0x22, 0xa0, 0x22, 0x0a, 0xf2, 0x90, 0x12, 0xa9, 0xb4, 0x40, ++ 0x45, 0x79, 0x74, 0xbc, 0x5a, 0x01, 0x89, 0x73, 0x8c, 0x20, 0xb3, 0xf7, 0x82, 0x95, 0x02, 0xfd, ++ 0xee, 0x77, 0xd9, 0x23, 0x31, 0x13, 0x2d, 0xce, 0x64, 0x27, 0xf9, 0x25, 0x37, 0xf7, 0xe6, 0x9c, ++ 0xcf, 0xf9, 0x7d, 0x7f, 0xdf, 0xf3, 0x3b, 0x97, 0x61, 0xfe, 0xcf, 0xa1, 0xd1, 0x68, 0xa6, 0x26, ++ 0x27, 0x27, 0x6f, 0x37, 0x18, 0x0c, 0x26, 0x9d, 0x4e, 0xd7, 0x45, 0xf1, 0x2b, 0x3d, 0xd7, 0xa7, ++ 0xa5, 0xa5, 0xc9, 0x53, 0x53, 0x53, 0xe7, 0x3d, 0x2c, 0xc8, 0x0e, 0xad, 0x56, 0xcb, 0x19, 0x8d, ++ 0xc6, 0x81, 0xb6, 0xb6, 0x36, 0xb4, 0xb4, 0xb4, 0x8c, 0x06, 0xff, 0x5c, 0x53, 0x53, 0x33, 0xa4, ++ 0xd7, 0xeb, 0xfb, 0x29, 0x8e, 0xa6, 0xa7, 0xa7, 0x3f, 0xf2, 0xc0, 0x10, 0xda, 0xb9, 0x2e, 0x27, ++ 0x27, 0x87, 0xeb, 0xe8, 0xe8, 0x40, 0x5e, 0x41, 0x21, 0x0e, 0x95, 0x98, 0xa0, 0xb8, 0xd0, 0x80, ++ 0x58, 0x93, 0x0d, 0x89, 0xe5, 0x56, 0x64, 0xe4, 0x9d, 0x41, 0x53, 0x53, 0x13, 0x2a, 0x2a, 0x2a, ++ 0x5c, 0x94, 0x9d, 0x43, 0xa5, 0x52, 0x3d, 0x3e, 0x6e, 0x08, 0x4d, 0x8c, 0x3e, 0x7e, 0xfc, 0x38, ++ 0xd7, 0xdc, 0xdc, 0x0c, 0x75, 0xd1, 0x79, 0xc4, 0x58, 0xed, 0x38, 0x77, 0xa3, 0x0f, 0x56, 0x17, ++ 0x8b, 0x8b, 0xb7, 0x39, 0x98, 0xfb, 0x59, 0xe8, 0x1d, 0xbf, 0x20, 0xde, 0x74, 0x19, 0x65, 0xe5, ++ 0xe5, 0xa8, 0xae, 0xae, 0x1e, 0xa4, 0xcc, 0xcc, 0x00, 0x04, 0x5e, 0x43, 0xd4, 0x6a, 0x75, 0x30, ++ 0x81, 0xb8, 0xab, 0x57, 0xaf, 0x42, 0x5d, 0x7c, 0x1e, 0x3f, 0xd6, 0x77, 0xe2, 0xd2, 0x20, 0x87, ++ 0x9f, 0x71, 0xeb, 0x8e, 0xb0, 0x8d, 0x0c, 0xa0, 0xb8, 0xb7, 0x0f, 0xb1, 0x95, 0x8d, 0xa8, 0xad, ++ 0xad, 0x05, 0x6d, 0x8c, 0x4d, 0x49, 0x49, 0x89, 0xf2, 0x1a, 0x44, 0x05, 0xfe, 0xc2, 0x64, 0x32, ++ 0xb9, 0xf2, 0x0a, 0xce, 0x62, 0x4f, 0x15, 0xd5, 0x62, 0x80, 0xfd, 0x17, 0xe4, 0xef, 0x68, 0x24, ++ 0x58, 0x9a, 0xfd, 0x3a, 0x52, 0x0a, 0x4a, 0x71, 0xe5, 0xca, 0x15, 0x50, 0x56, 0xb5, 0x5e, 0x83, ++ 0xc8, 0x51, 0x16, 0x7e, 0xd2, 0x91, 0x92, 0x0a, 0xa8, 0x6c, 0x5d, 0xa8, 0x1f, 0xea, 0x1f, 0x13, ++ 0xc4, 0x87, 0x99, 0x73, 0x22, 0xd6, 0xdc, 0x34, 0x6a, 0x12, 0x32, 0x8f, 0x2b, 0x29, 0x29, 0xc9, ++ 0xdf, 0x2b, 0x10, 0xed, 0xaa, 0x8b, 0x37, 0x40, 0x82, 0xa9, 0x0e, 0x59, 0x8e, 0x6e, 0xd4, 0x0f, ++ 0x0f, 0xdc, 0x13, 0x64, 0xbd, 0xc5, 0x22, 0xa6, 0x6a, 0xd4, 0x85, 0xc8, 0xcc, 0xcc, 0xbc, 0x49, ++ 0x8a, 0x84, 0x7b, 0x0b, 0xea, 0x68, 0x6f, 0x6f, 0x87, 0x92, 0x0a, 0x6d, 0x68, 0xb9, 0x8e, 0x3a, ++ 0xf7, 0x7d, 0x32, 0x62, 0x09, 0x64, 0x69, 0x1d, 0xad, 0x13, 0xd9, 0xdc, 0x49, 0x35, 0x0e, 0xf1, ++ 0x56, 0xba, 0x32, 0x87, 0xc3, 0x81, 0x94, 0x42, 0x23, 0x94, 0x64, 0x04, 0x33, 0xeb, 0x84, 0x6d, ++ 0x0c, 0x08, 0x2f, 0x6b, 0x6e, 0x7b, 0x37, 0x14, 0x95, 0x36, 0xf0, 0x73, 0xe8, 0xcc, 0xdd, 0x92, ++ 0xc9, 0x64, 0x13, 0xf9, 0x75, 0x22, 0x19, 0x66, 0x42, 0x54, 0x88, 0x68, 0xc9, 0x98, 0x20, 0x72, ++ 0xce, 0x86, 0x92, 0x92, 0x12, 0xae, 0xb4, 0xcc, 0x88, 0x3d, 0xb4, 0xd3, 0x1c, 0xc7, 0x6f, 0x24, ++ 0x0f, 0x87, 0x46, 0xcf, 0x9d, 0x90, 0x3a, 0x82, 0x18, 0x7b, 0xfa, 0xf0, 0x83, 0xd5, 0x01, 0xfd, ++ 0xa9, 0x82, 0xd1, 0x1a, 0x91, 0x1a, 0x25, 0xfc, 0x1a, 0x2b, 0x44, 0xa2, 0x47, 0x37, 0x8a, 0x85, ++ 0xc5, 0xf2, 0x55, 0x8f, 0xdd, 0xfc, 0x76, 0xc9, 0x63, 0x9b, 0xee, 0x0a, 0xa2, 0x76, 0x33, 0x89, ++ 0xec, 0xdd, 0xcb, 0xdb, 0x5b, 0x7b, 0xba, 0x88, 0x9c, 0x67, 0xc7, 0x31, 0x7b, 0x37, 0xca, 0xba, ++ 0x7b, 0x51, 0x4d, 0xe7, 0x87, 0x77, 0xa1, 0xd9, 0xe9, 0xc4, 0xe9, 0xce, 0x1e, 0xc4, 0x5f, 0xea, ++ 0x40, 0xa2, 0xb1, 0x06, 0xad, 0xad, 0xad, 0x48, 0x37, 0x68, 0x91, 0xaa, 0x7c, 0xff, 0x00, 0x41, ++ 0xa6, 0x7f, 0xb6, 0x40, 0x58, 0xd5, 0x75, 0x62, 0xe2, 0x20, 0x7b, 0x9e, 0xe9, 0xfb, 0xfa, 0xb5, ++ 0xc9, 0xdd, 0x2b, 0x83, 0x82, 0x16, 0x8c, 0x95, 0xd5, 0x0a, 0xd2, 0x9b, 0xeb, 0xec, 0xec, 0x84, ++ 0xee, 0x54, 0x21, 0xf6, 0x9a, 0x9b, 0x71, 0x90, 0x16, 0x55, 0x35, 0x76, 0xe1, 0x08, 0x39, 0x31, ++ 0xa1, 0xae, 0x13, 0xdf, 0x59, 0xda, 0x70, 0xb8, 0xb8, 0x02, 0x0d, 0x0d, 0x0d, 0x28, 0x38, 0x93, ++ 0x87, 0x8c, 0x23, 0x3b, 0xa1, 0xdc, 0x35, 0x77, 0xe4, 0xcb, 0x97, 0x45, 0xd7, 0x9c, 0x46, 0x1f, ++ 0xcf, 0x0d, 0x23, 0xc3, 0x5e, 0xcc, 0x64, 0xfa, 0xf7, 0xae, 0xf3, 0x75, 0xaf, 0x09, 0x15, 0x15, ++ 0x8e, 0x29, 0x21, 0xe9, 0xfd, 0x39, 0xdf, 0xcb, 0xec, 0x76, 0x3b, 0x2c, 0x16, 0x0b, 0xd2, 0xa8, ++ 0xe5, 0xf0, 0x6d, 0x28, 0xe9, 0x9c, 0x19, 0xc9, 0xf9, 0x45, 0x28, 0x2e, 0x3d, 0x07, 0xde, 0x34, ++ 0xb9, 0x39, 0x47, 0xa1, 0x4a, 0xd8, 0x89, 0xe8, 0xd5, 0x01, 0x88, 0x5b, 0x23, 0xc4, 0xed, 0x4a, ++ 0x01, 0xae, 0x9d, 0x15, 0xb8, 0x2f, 0x68, 0x18, 0x2e, 0x7a, 0x95, 0x1f, 0x17, 0x35, 0x53, 0x54, ++ 0x10, 0x19, 0x1a, 0x1a, 0x70, 0xbf, 0xc3, 0xfb, 0x12, 0xb5, 0xbc, 0xd6, 0xac, 0xac, 0x2c, 0xa7, ++ 0xd5, 0x6a, 0x1d, 0xe2, 0x7b, 0x1b, 0x5f, 0x0b, 0xca, 0xc2, 0x93, 0x9f, 0x9f, 0xcf, 0x6a, 0x35, ++ 0xea, 0x91, 0x8c, 0x43, 0xeb, 0x86, 0x76, 0xaf, 0x98, 0x02, 0xe5, 0xba, 0x40, 0x0c, 0x5a, 0x18, ++ 0x74, 0x9e, 0x11, 0xa0, 0xe8, 0xb0, 0x0f, 0xb6, 0xbd, 0x1a, 0xc8, 0x46, 0x86, 0x09, 0x75, 0x32, ++ 0x86, 0xf1, 0xf1, 0xca, 0x85, 0x7c, 0xff, 0x22, 0x29, 0x5f, 0x20, 0xe8, 0x01, 0xca, 0xf0, 0x24, ++ 0xb9, 0xb2, 0x90, 0xb2, 0x3d, 0x4c, 0xef, 0x56, 0xa9, 0xe2, 0x96, 0xcd, 0xfc, 0x6a, 0x79, 0x28, ++ 0x5b, 0xb8, 0x3f, 0xd0, 0xe3, 0xaa, 0x64, 0x60, 0x3f, 0xc9, 0x20, 0x57, 0xc1, 0x60, 0xcb, 0xe2, ++ 0x29, 0xd8, 0xf7, 0xc1, 0xcc, 0x61, 0x83, 0x5c, 0xfa, 0xce, 0x7f, 0xbe, 0x42, 0x22, 0x83, 0x82, ++ 0x02, 0x3f, 0x11, 0x8b, 0xce, 0xd6, 0x69, 0xfc, 0x58, 0xee, 0xc2, 0x84, 0x91, 0xe6, 0x5c, 0x01, ++ 0x34, 0xdf, 0x08, 0xb0, 0x61, 0xd1, 0x64, 0x44, 0x47, 0xfa, 0x23, 0x3b, 0x71, 0xb6, 0xc7, 0xa0, ++ 0x90, 0x0e, 0xe9, 0xe4, 0xe2, 0xb7, 0x1f, 0x18, 0xb2, 0x5c, 0x28, 0x0c, 0xd9, 0xb2, 0x50, 0x68, ++ 0xe9, 0x3a, 0x31, 0x61, 0x90, 0xab, 0x60, 0x7a, 0x6d, 0xd9, 0x8c, 0xeb, 0xa7, 0xad, 0x3e, 0xd8, ++ 0xf4, 0x7c, 0xb0, 0x47, 0xf6, 0x71, 0x00, 0x62, 0x36, 0x0b, 0xb0, 0x7f, 0x8b, 0x0f, 0xb2, 0x13, ++ 0xe6, 0x8c, 0xc2, 0xf4, 0x72, 0xc9, 0xb2, 0xf1, 0x67, 0x12, 0xfa, 0x84, 0x74, 0xd7, 0x8b, 0x53, ++ 0x6d, 0x6c, 0x39, 0x39, 0xab, 0x8c, 0xf9, 0xbd, 0x36, 0x93, 0xe1, 0x62, 0xd6, 0xfb, 0xba, 0xdf, ++ 0x9b, 0x23, 0xba, 0x9c, 0xba, 0x4f, 0xdc, 0x7d, 0x4c, 0x29, 0x71, 0x2b, 0xb6, 0xfb, 0x43, 0xb6, ++ 0x89, 0x19, 0x85, 0xe5, 0x26, 0xce, 0xf5, 0xe8, 0x15, 0x12, 0x77, 0x5a, 0x9c, 0xf8, 0x95, 0x71, ++ 0x81, 0x76, 0xcc, 0x0f, 0xaf, 0xe2, 0x72, 0x66, 0xd7, 0x5f, 0x2f, 0x66, 0x5c, 0x26, 0x2d, 0x39, ++ 0x6b, 0xa5, 0x3f, 0xb7, 0x36, 0x5c, 0x98, 0xff, 0x56, 0x44, 0x84, 0x7f, 0x46, 0x9c, 0x38, 0xc2, ++ 0xa0, 0x90, 0xf4, 0x64, 0x2b, 0xc5, 0x43, 0x71, 0xdb, 0xfc, 0x20, 0xdb, 0xfc, 0x27, 0x2c, 0x3b, ++ 0x71, 0x9e, 0x47, 0x7f, 0x50, 0x72, 0x5b, 0x2f, 0x97, 0x2e, 0xf6, 0x0a, 0xf2, 0x51, 0x58, 0xd8, ++ 0xa2, 0xf8, 0xd7, 0x25, 0x4e, 0x4f, 0xf2, 0x9a, 0x9e, 0xaa, 0xa4, 0xa0, 0xee, 0xad, 0x4b, 0x26, ++ 0xf5, 0x44, 0x3d, 0x25, 0x52, 0xd3, 0xa7, 0x7f, 0x2e, 0x3c, 0xad, 0x62, 0xfe, 0x5c, 0xc3, 0x41, ++ 0xc9, 0x0d, 0x1e, 0x16, 0xbb, 0xcd, 0x17, 0x8a, 0xed, 0x7e, 0x28, 0xd5, 0x3d, 0x03, 0x7a, 0x37, ++ 0xac, 0x53, 0x88, 0xe5, 0x5e, 0x81, 0x3e, 0x8c, 0x08, 0x69, 0x0d, 0x9b, 0x12, 0x40, 0x9c, 0x67, ++ 0x9d, 0xbb, 0x9f, 0x9b, 0xe5, 0x78, 0x37, 0x5c, 0xf4, 0xe9, 0x5d, 0xcf, 0xe0, 0x5f, 0xb0, 0x63, ++ 0xca, 0x79, 0xc3, 0xc5, 0xda, 0x05, 0x30, 0xc4, 0x4b, 0xdd, 0x7a, 0x85, 0x34, 0x0d, 0x60, 0xee, ++ 0x7f, 0x03, 0x6f, 0x9c, 0x35, 0x43, 0xb2, 0x34, 0x38, 0xc8, 0xf3, 0xe6, 0x34, 0x11, 0xbb, 0x74, ++ 0x7a, 0xf0, 0xf7, 0xd4, 0xc0, 0x7c, 0xef, 0xf9, 0xcf, 0x21, 0x97, 0x4a, 0x49, 0x2e, 0x27, 0xc5, ++ 0x88, 0xd7, 0x10, 0x7e, 0xac, 0x0d, 0x9b, 0xb6, 0x7e, 0xf5, 0x8c, 0x27, 0xdf, 0x18, 0x4f, 0x3d, ++ 0x0d, 0x71, 0x4f, 0x2f, 0x24, 0x23, 0x24, 0xca, 0x64, 0x5e, 0x1e, 0xda, 0x87, 0x3d, 0xfe, 0x00, ++ 0xd0, 0x47, 0xc4, 0xec, 0x1b, 0x35, 0x95, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, ++ 0xae, 0x42, 0x60, 0x82, ++}; ++ ++const BITMAP_OPAQUE find_replace_xpm[1] = {{ png, sizeof( png ), "find_replace_xpm" }}; ++ ++//EOF +diff --git a/bitmaps_png/sources/find.svg b/bitmaps_png/sources/find.svg +new file mode 100644 +index 00000000..cf9d6950 +--- /dev/null ++++ b/bitmaps_png/sources/find.svg +@@ -0,0 +1,127 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ image/svg+xml ++ ++ ++ Georges Khaznadar georgesk@debian.org ++ ++ ++ ++ ++ Georges Khaznadar georgesk@debian.org ++ ++ ++ ++ 2016 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/bitmaps_png/sources/find_replace.svg b/bitmaps_png/sources/find_replace.svg +new file mode 100644 +index 00000000..14f4e444 +--- /dev/null ++++ b/bitmaps_png/sources/find_replace.svg +@@ -0,0 +1,179 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ image/svg+xml ++ ++ ++ Georges Khaznadar georgesk@debian.org ++ ++ ++ ++ ++ Georges Khaznadar georgesk@debian.org ++ ++ ++ ++ 2016 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ diff --git a/patches/debian-hacks/Remove-download-target-for-noAvhttp.patch b/patches/debian-hacks/Remove-download-target-for-noAvhttp.patch new file mode 100644 index 00000000..1d111e61 --- /dev/null +++ b/patches/debian-hacks/Remove-download-target-for-noAvhttp.patch @@ -0,0 +1,46 @@ +From: Georges Khaznadar +Date: Sat, 3 Sep 2016 17:57:10 +0200 +Subject: Remove download target for noAvhttp + +In Debian we don't load anything dynamically from the net while package +built. +--- + CMakeModules/download_avhttp.cmake | 27 --------------------------- + 1 file changed, 27 deletions(-) + +diff --git a/CMakeModules/download_avhttp.cmake b/CMakeModules/download_avhttp.cmake +index abc52b7e..1827273d 100644 +--- a/CMakeModules/download_avhttp.cmake ++++ b/CMakeModules/download_avhttp.cmake +@@ -35,31 +35,4 @@ + #---------------------------------------------------------------------------------------- + + +-# Where the library is to be installed. +-set( PREFIX ${DOWNLOAD_DIR}/avhttp ) +- +-if( KICAD_SKIP_BOOST ) +- set( AVHTTP_DEPEND "" ) +-else() +- set( AVHTTP_DEPEND "boost" ) +-endif() +- +- +-# Install the AVHTTP header only library ${PREFIX} +-ExternalProject_Add( avhttp +- PREFIX ${PREFIX} +- DOWNLOAD_DIR ${DOWNLOAD_DIR} # no true download yet +- +- # grab it from a local zip file for now, cmake caller's source dir +- URL ${CMAKE_CURRENT_SOURCE_DIR}/avhttp-master.zip +- DEPENDS ${AVHTTP_DEPEND} +- +- CONFIGURE_COMMAND "" +- +- BUILD_COMMAND "" +- INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory +- ) +- +- +-set( AVHTTP_INCLUDE_DIR "${PREFIX}/include" CACHE FILEPATH "AVHTTP include directory" ) + mark_as_advanced( AVHTTP_INCLUDE_DIR ) diff --git a/patches/debian-hacks/Removing-hyphen-inside-KICAD_FULL_VERSION.patch b/patches/debian-hacks/Removing-hyphen-inside-KICAD_FULL_VERSION.patch new file mode 100644 index 00000000..29a7bb20 --- /dev/null +++ b/patches/debian-hacks/Removing-hyphen-inside-KICAD_FULL_VERSION.patch @@ -0,0 +1,26 @@ +From: Carsten Schoenert +Date: Sat, 17 Dec 2016 20:11:25 +0100 +Subject: Removing hyphen inside KICAD_FULL_VERSION + +Upstream is providing the possibility to append various strings into the +KICAD_FULL_VERSION if needed. We can use this to append the debian +specific version on the upstream version. +For this the KICAD_FULL_VERSION needs to be merged without the hyphen +'-' so the version is reflecting the debian version in real. +--- + CMakeModules/WriteVersionHeader.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeModules/WriteVersionHeader.cmake b/CMakeModules/WriteVersionHeader.cmake +index 013a36ac..c1cd7f60 100644 +--- a/CMakeModules/WriteVersionHeader.cmake ++++ b/CMakeModules/WriteVersionHeader.cmake +@@ -47,7 +47,7 @@ endif() + + # Optional user version information defined at configuration. + if( KICAD_VERSION_EXTRA ) +- set( KICAD_VERSION_FULL "${KICAD_VERSION_FULL}-${KICAD_VERSION_EXTRA}" ) ++ set( KICAD_VERSION_FULL "${KICAD_VERSION_FULL}${KICAD_VERSION_EXTRA}" ) + endif() + + set( _wvh_new_version_text diff --git a/patches/fixes/Add-missing-dependency-github_plugin-pcbcommon.patch b/patches/fixes/Add-missing-dependency-github_plugin-pcbcommon.patch new file mode 100644 index 00000000..6d3ee1b5 --- /dev/null +++ b/patches/fixes/Add-missing-dependency-github_plugin-pcbcommon.patch @@ -0,0 +1,22 @@ +From: Simon Richter +Date: Thu, 5 May 2016 10:01:38 +0200 +Subject: Add missing dependency github_plugin -> pcbcommon + +The GitHub plugin needs the generated PCB parser code. +--- + pcbnew/CMakeLists.txt | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/pcbnew/CMakeLists.txt b/pcbnew/CMakeLists.txt +index a0454bec..4fe1978e 100644 +--- a/pcbnew/CMakeLists.txt ++++ b/pcbnew/CMakeLists.txt +@@ -538,6 +538,8 @@ add_subdirectory( pcad2kicadpcb_plugin ) + if( BUILD_GITHUB_PLUGIN ) + add_subdirectory( github ) + add_dependencies( github_plugin lib-dependencies ) ++ # github_plugin depends on make_lexer outputs in common ++ add_dependencies( github_plugin pcbcommon ) + endif() + + diff --git a/patches/fixes/Fix-FTBFS-with-Boost-1.61.patch b/patches/fixes/Fix-FTBFS-with-Boost-1.61.patch new file mode 100644 index 00000000..71bc8ef0 --- /dev/null +++ b/patches/fixes/Fix-FTBFS-with-Boost-1.61.patch @@ -0,0 +1,397 @@ +From: Michael Steinberg +Date: Sat, 3 Sep 2016 17:48:20 +0200 +Subject: Fix FTBFS with Boost 1.61 + +The attached patch includes two commits from upstream: + - boost::context fixes to make it compatible with boost 1.61 + - use a guarded stack for coroutines in boost version 1.61 + +https://github.com/KiCad/kicad-source-mirror/commit/06d4894fdbeb00727cdcc667b8899ad73d8eb1c2 +https://github.com/KiCad/kicad-source-mirror/commit/78bc3c65de6c03d19be9902327d08cd4d87c229c + +Closes: #834246 +--- + common/tool/tool_manager.cpp | 4 +- + include/tool/coroutine.h | 163 ++++++++++++++++++++++++++-------------- + include/tool/tool_base.h | 7 +- + include/tool/tool_interactive.h | 3 +- + 4 files changed, 116 insertions(+), 61 deletions(-) + +diff --git a/common/tool/tool_manager.cpp b/common/tool/tool_manager.cpp +index 447ab990..ab11b13e 100644 +--- a/common/tool/tool_manager.cpp ++++ b/common/tool/tool_manager.cpp +@@ -542,11 +542,11 @@ void TOOL_MANAGER::dispatchInternal( const TOOL_EVENT& aEvent ) + if( st->cofunc ) + st->Push(); + ++ st->cofunc = new COROUTINE( tr.second ); ++ + // as the state changes, the transition table has to be set up again + st->transitions.clear(); + +- st->cofunc = new COROUTINE( tr.second ); +- + // got match? Run the handler. + st->cofunc->Call( aEvent ); + +diff --git a/include/tool/coroutine.h b/include/tool/coroutine.h +index c7eaf5fa..8e472ca6 100644 +--- a/include/tool/coroutine.h ++++ b/include/tool/coroutine.h +@@ -3,6 +3,7 @@ + * + * Copyright (C) 2013 CERN + * @author Tomasz Wlostowski ++ * Copyright (C) 2016 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License +@@ -27,10 +28,15 @@ + + #include + +-#include + #include ++#include + +-#include "delegate.h" ++#if BOOST_VERSION <= 106000 ++#include ++#else ++#include ++#include ++#endif + + /** + * Class COROUNTINE. +@@ -53,13 +59,12 @@ + * See coroutine_example.cpp for sample code. + */ + +-template ++template + class COROUTINE + { + public: + COROUTINE() : +- m_saved( NULL ), m_self( NULL ), m_stack( NULL ), m_stackSize( c_defaultStackSize ), +- m_running( false ) ++ COROUTINE( nullptr ) + { + } + +@@ -69,8 +74,7 @@ public: + */ + template + COROUTINE( T* object, ReturnType(T::* ptr)( ArgType ) ) : +- m_func( object, ptr ), m_self( NULL ), m_saved( NULL ), m_stack( NULL ), +- m_stackSize( c_defaultStackSize ), m_running( false ) ++ COROUTINE( std::bind( ptr, object, std::placeholders::_1 ) ) + { + } + +@@ -78,9 +82,15 @@ public: + * Constructor + * Creates a coroutine from a delegate object + */ +- COROUTINE( DELEGATE aEntry ) : +- m_func( aEntry ), m_saved( NULL ), m_self( NULL ), m_stack( NULL ), +- m_stackSize( c_defaultStackSize ), m_running( false ) ++ COROUTINE( std::function aEntry ) : ++ m_func( std::move( aEntry ) ), ++ m_running( false ), ++#if BOOST_VERSION <= 106000 ++ m_stack( nullptr ), ++ m_stackSize( c_defaultStackSize ), ++#endif ++ m_caller( nullptr ), ++ m_callee( nullptr ) + { + // Avoid not initialized members, and make static analysers quiet + m_args = 0; +@@ -89,18 +99,26 @@ public: + + ~COROUTINE() + { +- if( m_saved ) +- delete m_saved; +- + #if BOOST_VERSION >= 105600 +- if( m_self ) +- delete m_self; ++ delete m_callee; + #endif + ++#if BOOST_VERSION <= 106000 ++ delete m_caller; ++ + if( m_stack ) + free( m_stack ); ++#endif + } + ++private: ++#if BOOST_VERSION <= 106000 ++ using context_type = boost::context::fcontext_t; ++#else ++ using context_type = boost::context::execution_context; ++#endif ++ ++public: + /** + * Function Yield() + * +@@ -110,7 +128,12 @@ public: + */ + void Yield() + { +- jump( m_self, m_saved, 0 ); ++#if BOOST_VERSION <= 106000 ++ jump( m_callee, m_caller, false ); ++#else ++ auto result = (*m_caller)( this ); ++ *m_caller = std::move( std::get<0>( result ) ); ++#endif + } + + /** +@@ -122,7 +145,11 @@ public: + void Yield( ReturnType& aRetVal ) + { + m_retVal = aRetVal; +- jump( m_self, m_saved, 0 ); ++#if BOOST_VERSION <= 106000 ++ jump( m_callee, m_caller, false ); ++#else ++ m_caller( this ); ++#endif + } + + /** +@@ -130,9 +157,9 @@ public: + * + * Defines the entry point for the coroutine, if not set in the constructor. + */ +- void SetEntry( DELEGATE aEntry ) ++ void SetEntry( std::function aEntry ) + { +- m_func = aEntry; ++ m_func = std::move( aEntry ); + } + + /* Function Call() +@@ -143,6 +170,10 @@ public: + */ + bool Call( ArgType aArgs ) + { ++ assert( m_callee == NULL ); ++ assert( m_caller == NULL ); ++ ++#if BOOST_VERSION <= 106000 + // fixme: Clean up stack stuff. Add a guard + m_stack = malloc( c_defaultStackSize ); + +@@ -151,22 +182,32 @@ public: + + // correct the stack size + m_stackSize -= ( (size_t) m_stack + m_stackSize - (size_t) sp ); +- +- assert( m_self == NULL ); +- assert( m_saved == NULL ); ++#endif + + m_args = &aArgs; +-#if BOOST_VERSION >= 105600 +- m_self = new boost::context::fcontext_t(); +- *m_self = boost::context::make_fcontext( sp, m_stackSize, callerStub ); ++ ++#if BOOST_VERSION < 105600 ++ m_callee = boost::context::make_fcontext( sp, m_stackSize, callerStub ); ++#elif BOOST_VERSION <= 106000 ++ m_callee = new context_type( boost::context::make_fcontext( sp, m_stackSize, callerStub ) ); + #else +- m_self = boost::context::make_fcontext( sp, m_stackSize, callerStub ); ++ m_callee = new context_type( std::allocator_arg_t(), ++ boost::context::protected_fixedsize_stack( c_defaultStackSize ), &COROUTINE::callerStub ); ++#endif ++ ++#if BOOST_VERSION <= 106000 ++ m_caller = new context_type(); + #endif +- m_saved = new boost::context::fcontext_t(); + + m_running = true; ++ + // off we go! +- jump( m_saved, m_self, reinterpret_cast( this ) ); ++#if BOOST_VERSION <= 106000 ++ jump( m_caller, m_callee, reinterpret_cast( this ) ); ++#else ++ auto result = (*m_callee)( this ); ++ *m_callee = std::move( std::get<0>( result ) ); ++#endif + return m_running; + } + +@@ -179,7 +220,12 @@ public: + */ + bool Resume() + { +- jump( m_saved, m_self, 0 ); ++#if BOOST_VERSION <= 106000 ++ jump( m_caller, m_callee, false ); ++#else ++ auto result = (*m_callee)( this ); ++ *m_callee = std::move( std::get<0>( result ) ); ++#endif + + return m_running; + } +@@ -208,61 +254,66 @@ private: + static const int c_defaultStackSize = 2000000; // fixme: make configurable + + /* real entry point of the coroutine */ ++#if BOOST_VERSION <= 106000 + static void callerStub( intptr_t aData ) ++#else ++ static context_type callerStub( context_type caller, COROUTINE* cor ) ++#endif + { + // get pointer to self ++#if BOOST_VERSION <= 106000 + COROUTINE* cor = reinterpret_cast*>( aData ); ++#else ++ cor->m_caller = &caller; ++#endif + + // call the coroutine method +- cor->m_retVal = cor->m_func( *cor->m_args ); ++ cor->m_retVal = cor->m_func( *( cor->m_args ) ); + cor->m_running = false; + + // go back to wherever we came from. +- jump( cor->m_self, cor->m_saved, 0 ); // reinterpret_cast( this )); ++#if BOOST_VERSION <= 106000 ++ jump( cor->m_callee, cor->m_caller, 0 ); ++#else ++ return caller; ++#endif + } + + ///> Wrapper for jump_fcontext to assure compatibility between different boost versions +- static inline intptr_t jump(boost::context::fcontext_t* aOld, boost::context::fcontext_t* aNew, ++#if BOOST_VERSION <= 106000 ++ static inline intptr_t jump( context_type* aOld, context_type* aNew, + intptr_t aP, bool aPreserveFPU = true ) + { +-#if BOOST_VERSION >= 105600 +- return boost::context::jump_fcontext( aOld, *aNew, aP, aPreserveFPU ); +-#else ++#if BOOST_VERSION < 105600 + return boost::context::jump_fcontext( aOld, aNew, aP, aPreserveFPU ); ++#else ++ return boost::context::jump_fcontext( aOld, *aNew, aP, aPreserveFPU ); + #endif + } ++#endif + +- template +- struct strip_ref +- { +- typedef T result; +- }; ++ std::function m_func; + +- template +- struct strip_ref +- { +- typedef T result; +- }; ++ bool m_running; + +- DELEGATE m_func; ++#if BOOST_VERSION <= 106000 ++ ///< coroutine stack ++ void* m_stack; ++ ++ size_t m_stackSize; ++#endif + + ///< pointer to coroutine entry arguments. Stripped of references + ///< to avoid compiler errors. +- typename strip_ref::result* m_args; ++ typename std::remove_reference::type* m_args; ++ + ReturnType m_retVal; + + ///< saved caller context +- boost::context::fcontext_t* m_saved; ++ context_type* m_caller; + + ///< saved coroutine context +- boost::context::fcontext_t* m_self; +- +- ///< coroutine stack +- void* m_stack; +- +- size_t m_stackSize; +- +- bool m_running; ++ context_type* m_callee; + }; + + #endif +diff --git a/include/tool/tool_base.h b/include/tool/tool_base.h +index 584a979c..3bef987c 100644 +--- a/include/tool/tool_base.h ++++ b/include/tool/tool_base.h +@@ -3,6 +3,7 @@ + * + * Copyright (C) 2013 CERN + * @author Tomasz Wlostowski ++ * Copyright (C) 2016 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License +@@ -31,7 +32,7 @@ + #include + #include + +-#include ++#include + + class EDA_ITEM; + class TOOL_MANAGER; +@@ -53,7 +54,9 @@ enum TOOL_TYPE + + /// Unique identifier for tools + typedef int TOOL_ID; +-typedef DELEGATE TOOL_STATE_FUNC; ++ ++using TOOL_STATE_FUNC = std::function; ++ + + /** + * Class TOOL_BASE +diff --git a/include/tool/tool_interactive.h b/include/tool/tool_interactive.h +index 17d2de71..240eb580 100644 +--- a/include/tool/tool_interactive.h ++++ b/include/tool/tool_interactive.h +@@ -3,6 +3,7 @@ + * + * Copyright (C) 2013 CERN + * @author Tomasz Wlostowski ++ * Copyright (C) 2016 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License +@@ -113,7 +114,7 @@ template + void TOOL_INTERACTIVE::Go( int (T::* aStateFunc)( const TOOL_EVENT& ), + const TOOL_EVENT_LIST& aConditions ) + { +- TOOL_STATE_FUNC sptr( static_cast( this ), aStateFunc ); ++ TOOL_STATE_FUNC sptr = std::bind( aStateFunc, static_cast( this ), std::placeholders::_1 ); + + goInternal( sptr, aConditions ); + } diff --git a/patches/fixes/Fix-issue-170-for-real.patch b/patches/fixes/Fix-issue-170-for-real.patch new file mode 100644 index 00000000..8fa20fed --- /dev/null +++ b/patches/fixes/Fix-issue-170-for-real.patch @@ -0,0 +1,34 @@ +From: =?utf-8?q?Nick_=C3=98stergaard?= +Date: Sun, 18 Dec 2016 22:16:22 +0100 +Subject: Fix issue #170 -- for real + +(Notes by Carsten Schoenert) +Upstream fix for kicad-doc commited after the release of v4.0.5. +This patch will automatically fall out of the patch queue with the next +version 4.0.6. +This commit isn't fixing the installation of the default images. For +this we need another fix. +--- + doc/CMakeModules/KiCadDocumentation.cmake | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/doc/CMakeModules/KiCadDocumentation.cmake b/doc/CMakeModules/KiCadDocumentation.cmake +index e4c91e46..884f46bf 100644 +--- a/doc/CMakeModules/KiCadDocumentation.cmake ++++ b/doc/CMakeModules/KiCadDocumentation.cmake +@@ -136,7 +136,14 @@ macro( KiCadDocumentation DOCNAME ) + add_dependencies( ${DOCNAME} ${DOCNAME}_html_${LANGUAGE} ) + + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGE}/${DOCNAME}.html DESTINATION ${KICAD_DOC_PATH}/${LANGUAGE} COMPONENT html-${LANGUAGE} ) +- install( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGE}/images/ DESTINATION ${KICAD_DOC_PATH}/${LANGUAGE}/images COMPONENT html-${LANGUAGE} OPTIONAL PATTERN "*.png") ++ ++ # It seems to be nescesary to use diffrent install commands to ++ # install the images properly without having other lagunages ++ # polluting the images folder ++ install( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGE}/images/${LANGUAGE} DESTINATION ${KICAD_DOC_PATH}/${LANGUAGE}/images COMPONENT html-${LANGUAGE} OPTIONAL PATTERN "*.png") ++ install( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGE}/images/icons DESTINATION ${KICAD_DOC_PATH}/${LANGUAGE}/images COMPONENT html-${LANGUAGE} OPTIONAL PATTERN "*.png") ++ file(GLOB UNIVERSAL_IMAGES "${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGE}/images/*.png") ++ install( FILES ${UNIVERSAL_IMAGES} DESTINATION ${KICAD_DOC_PATH}/${LANGUAGE}/images COMPONENT html-${LANGUAGE} ) + endif() + + diff --git a/patches/fixes/Fixing-some-spelling-issues.patch b/patches/fixes/Fixing-some-spelling-issues.patch new file mode 100644 index 00000000..42b28b93 --- /dev/null +++ b/patches/fixes/Fixing-some-spelling-issues.patch @@ -0,0 +1,948 @@ +From: Carsten Schoenert +Date: Fri, 9 Sep 2016 11:12:02 +0200 +Subject: Fixing some spelling issues + +Lintian has found some spelling issues which are not pushed upstream for +release 4.x. +--- + Documentation/changelogs/CHANGELOG-2008.txt | 2 +- + Documentation/changelogs/CHANGELOG-2009.txt | 2 +- + common/draw_panel.cpp | 2 +- + common/fpid.cpp | 2 +- + common/kiway_player.cpp | 2 +- + common/page_layout/page_layout_reader.cpp | 2 +- + common/pgm_base.cpp | 2 +- + .../eeschema_component_library_editor.adoc | 2 +- + eeschema/dialogs/dialog_eeschema_config_fbp.cpp | 2 +- + eeschema/dialogs/dialog_eeschema_config_fbp.fbp | 2 +- + eeschema/dialogs/dialog_print_using_printer.cpp | 4 ++-- + eeschema/edit_label.cpp | 2 +- + eeschema/erc.cpp | 4 ++-- + eeschema/erc.h | 4 ++-- + eeschema/pinedit.cpp | 2 +- + eeschema/sch_base_frame.h | 2 +- + eeschema/sch_screen.cpp | 6 ++--- + eeschema/schframe.h | 4 ++-- + eeschema/viewlib_frame.cpp | 2 +- + gerbview/gerbview_frame.h | 2 +- + include/class_bitmap_base.h | 2 +- + include/class_drawpanel.h | 2 +- + include/class_undoredo_container.h | 2 +- + include/dsnlexer.h | 2 +- + include/gal/opengl/glm/ext.hpp | 2 +- + include/gal/opengl/glm/gtc/matrix_transform.hpp | 26 +++++++++++----------- + include/gal/opengl/glm/gtc/random.hpp | 2 +- + pagelayout_editor/pl_editor_frame.h | 2 +- + pcbnew/class_board.cpp | 2 +- + pcbnew/connect.cpp | 4 ++-- + pcbnew/connect.h | 2 +- + pcbnew/dialogs/dialog_copper_zones_base.cpp | 2 +- + pcbnew/dialogs/dialog_copper_zones_base.fbp | 2 +- + pcbnew/dialogs/dialog_design_rules.cpp | 2 +- + pcbnew/dialogs/dialog_export_vrml.cpp | 2 +- + pcbnew/dialogs/dialog_freeroute_exchange_help.html | 2 +- + pcbnew/dialogs/dialog_gendrill_base.cpp | 6 ++--- + pcbnew/dialogs/dialog_gendrill_base.fbp | 6 ++--- + .../dialog_keepout_area_properties_base.cpp | 2 +- + .../dialog_keepout_area_properties_base.fbp | 2 +- + .../dialog_non_copper_zones_properties_base.cpp | 2 +- + .../dialog_non_copper_zones_properties_base.fbp | 2 +- + pcbnew/dialogs/wizard_3DShape_Libs_downloader.cpp | 2 +- + pcbnew/drc_clearance_test_functions.cpp | 4 ++-- + pcbnew/onrightclick.cpp | 2 +- + pcbnew/plot_board_layers.cpp | 2 +- + pcbnew/ratsnest.cpp | 4 ++-- + pcbnew/zones_by_polygon.cpp | 6 ++--- + pcbnew/zones_functions_for_undo_redo.cpp | 4 ++-- + pcbnew/zones_test_and_combine_areas.cpp | 2 +- + 50 files changed, 78 insertions(+), 78 deletions(-) + +diff --git a/Documentation/changelogs/CHANGELOG-2008.txt b/Documentation/changelogs/CHANGELOG-2008.txt +index d2105857..c19727d4 100644 +--- a/Documentation/changelogs/CHANGELOG-2008.txt ++++ b/Documentation/changelogs/CHANGELOG-2008.txt +@@ -1128,7 +1128,7 @@ removed: (common/infospgm.cpp) is no longer needed + When a sheet is deleted by block delete. it is put in undo list. + It is really deleted after 10 changes (when the undo list is full). + At this time, the associated data is also deleted. +- If an other (not deleted) sheet shares the same data, this data is lost. ++ If another (not deleted) sheet shares the same data, this data is lost. + Need work to solve this problem and keep the undo/redo feature. + + +diff --git a/Documentation/changelogs/CHANGELOG-2009.txt b/Documentation/changelogs/CHANGELOG-2009.txt +index fbdae4fb..d58d79ff 100644 +--- a/Documentation/changelogs/CHANGELOG-2009.txt ++++ b/Documentation/changelogs/CHANGELOG-2009.txt +@@ -281,7 +281,7 @@ Component library object and other minor improvements. + Speed up ZONE_CONTAINER::Copy method + Speed up NETINFO_ITEM* BOARD::FindNet( const wxString& aNetname ) by using afast binary search + Switch to kbool V2.1. This version solves others problems in zones calculations. +- Adding an other way to generate thermal shape; DO NOT USE: this is for kbool tests only ++ Adding another way to generate thermal shape; DO NOT USE: this is for kbool tests only + (I am thinking some bugs are remaining, so i am always working on kbool tests. + Klaas Olwerda is supporting me) + +diff --git a/common/draw_panel.cpp b/common/draw_panel.cpp +index 3bd1103a..98fd2824 100644 +--- a/common/draw_panel.cpp ++++ b/common/draw_panel.cpp +@@ -124,7 +124,7 @@ EDA_DRAW_PANEL::EDA_DRAW_PANEL( EDA_DRAW_FRAME* parent, int id, + m_ignoreMouseEvents = false; + // Be sure a mouse release button event will be ignored when creating the canvas + // if the mouse click was not made inside the canvas (can happen sometimes, when +- // launching an editor from a double click made in an other frame) ++ // launching an editor from a double click made in another frame) + m_ignoreNextLeftButtonRelease = true; + + m_mouseCaptureCallback = NULL; +diff --git a/common/fpid.cpp b/common/fpid.cpp +index ba70c67d..c410bbd4 100644 +--- a/common/fpid.cpp ++++ b/common/fpid.cpp +@@ -167,7 +167,7 @@ int FPID::Parse( const UTF8& aId ) + + // Be sure the footprint name is valid. + // Some chars can be found in board file (in old board files +- // or converted files from an other EDA tool ++ // or converted files from another EDA tool + std::string fpname = aId.substr( partNdx, revNdx-partNdx ); + ReplaceIllegalFileNameChars( &fpname, '_' ); + SetFootprintName( UTF8( fpname ) ); +diff --git a/common/kiway_player.cpp b/common/kiway_player.cpp +index a33acc1b..d6fc5ae5 100644 +--- a/common/kiway_player.cpp ++++ b/common/kiway_player.cpp +@@ -111,7 +111,7 @@ bool KIWAY_PLAYER::ShowModal( wxString* aResult, wxWindow* aResultantFocusWindow + // We do not want to disable top level windows which are child of the modal one, + // if they are enabled. + // An example is an aui toolbar which was moved +- // or a dialog or an other frame or miniframe opened by the modal one. ++ // or a dialog or another frame or miniframe opened by the modal one. + wxWindowList wlist = GetChildren(); + std::vector enabledTopLevelWindows; + +diff --git a/common/page_layout/page_layout_reader.cpp b/common/page_layout/page_layout_reader.cpp +index a282989a..82343b25 100644 +--- a/common/page_layout/page_layout_reader.cpp ++++ b/common/page_layout/page_layout_reader.cpp +@@ -488,7 +488,7 @@ void PAGE_LAYOUT_READER_PARSER::parseGraphic( WORKSHEET_DATAITEM * aItem ) + token = NextTok(); + else + { +- // If an other token than T_LEFT is read here, this is an error ++ // If another token than T_LEFT is read here, this is an error + // however, due to a old bug in kicad, the token T_end can be found + // without T_LEFT in a very few .wks files (perhaps only one in a demo). + // So this ugly hack disables the error detection. +diff --git a/common/pgm_base.cpp b/common/pgm_base.cpp +index 07286334..e4894380 100644 +--- a/common/pgm_base.cpp ++++ b/common/pgm_base.cpp +@@ -669,7 +669,7 @@ bool PGM_BASE::SetLanguage( bool first_time ) + + if( !first_time ) + { +- // If we are here, the user has selected an other language. ++ // If we are here, the user has selected another language. + // Therefore the new prefered language name is stored in common config. + // Do NOT store the wxWidgets language Id, it can change between wxWidgets + // versions, for a given language +diff --git a/doc/src/eeschema/eeschema_component_library_editor.adoc b/doc/src/eeschema/eeschema_component_library_editor.adoc +index 29312a91..4b76668e 100644 +--- a/doc/src/eeschema/eeschema_component_library_editor.adoc ++++ b/doc/src/eeschema/eeschema_component_library_editor.adoc +@@ -406,7 +406,7 @@ existing component. + image:images/icons/save_part_in_mem.png[icons/save_part_in_mem_png] + or save to a new library by clicking the + image:images/icons/new_library.png[icons/new_library_png] +- or if you want to save this new component in an other existing ++ or if you want to save this new component in another existing + library select the other library by clicking on the + image:images/icons/library.png[icons/library_png] + and save the new component. +diff --git a/eeschema/dialogs/dialog_eeschema_config_fbp.cpp b/eeschema/dialogs/dialog_eeschema_config_fbp.cpp +index 5ac72bcc..c803aa57 100644 +--- a/eeschema/dialogs/dialog_eeschema_config_fbp.cpp ++++ b/eeschema/dialogs/dialog_eeschema_config_fbp.cpp +@@ -27,7 +27,7 @@ DIALOG_EESCHEMA_CONFIG_FBP::DIALOG_EESCHEMA_CONFIG_FBP( wxWindow* parent, wxWind + bSizerLibsChoice = new wxBoxSizer( wxHORIZONTAL ); + + m_ListLibr = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_EXTENDED|wxLB_HSCROLL|wxLB_NEEDED_SB|wxLB_SINGLE ); +- m_ListLibr->SetToolTip( _("List of active library files.\nOnly library files in this list are loaded by Eeschema.\nThe order of this list is important:\nEeschema searchs for a given component using this list order priority.") ); ++ m_ListLibr->SetToolTip( _("List of active library files.\nOnly library files in this list are loaded by Eeschema.\nThe order of this list is important:\nEeschema searches for a given component using this list order priority.") ); + m_ListLibr->SetMinSize( wxSize( 400,250 ) ); + + bSizerLibsChoice->Add( m_ListLibr, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); +diff --git a/eeschema/dialogs/dialog_eeschema_config_fbp.fbp b/eeschema/dialogs/dialog_eeschema_config_fbp.fbp +index 72fcc430..2abdd170 100644 +--- a/eeschema/dialogs/dialog_eeschema_config_fbp.fbp ++++ b/eeschema/dialogs/dialog_eeschema_config_fbp.fbp +@@ -247,7 +247,7 @@ + wxLB_EXTENDED|wxLB_HSCROLL|wxLB_NEEDED_SB|wxLB_SINGLE + + 0 +- List of active library files. Only library files in this list are loaded by Eeschema. The order of this list is important: Eeschema searchs for a given component using this list order priority. ++ List of active library files. Only library files in this list are loaded by Eeschema. The order of this list is important: Eeschema searches for a given component using this list order priority. + + wxFILTER_NONE + wxDefaultValidator +diff --git a/eeschema/dialogs/dialog_print_using_printer.cpp b/eeschema/dialogs/dialog_print_using_printer.cpp +index 09257bda..874a6d48 100644 +--- a/eeschema/dialogs/dialog_print_using_printer.cpp ++++ b/eeschema/dialogs/dialog_print_using_printer.cpp +@@ -272,7 +272,7 @@ void DIALOG_PRINT_USING_PRINTER::OnPrintPreview( wxCommandEvent& event ) + + // We use here wxPreviewFrame_WindowModal option to make the wxPrintPreview frame + // modal for its caller only. +- // An other reason is the fact when closing the frame without this option, ++ // another reason is the fact when closing the frame without this option, + // all top level frames are reenabled. + // With this option, only the parent is reenabled. + // Reenabling all top level frames should be made by the parent dialog. +@@ -439,7 +439,7 @@ void SCH_PRINTOUT::DrawPage( SCH_SCREEN* aScreen ) + + // For an obscure reason, OffsetLogicalOrigin creates issues, + // under some circumstances, when yoffset is not always null +- // and changes from a page to an other page ++ // and changes from a page to another page + // This is only a workaround, not a fix + // see https://bugs.launchpad.net/kicad/+bug/1464773 + // xoffset does not create issues. +diff --git a/eeschema/edit_label.cpp b/eeschema/edit_label.cpp +index 2be1d87b..060db3bc 100644 +--- a/eeschema/edit_label.cpp ++++ b/eeschema/edit_label.cpp +@@ -131,7 +131,7 @@ SCH_TEXT* SCH_EDIT_FRAME::CreateNewText( wxDC* aDC, int aType ) + + + /* +- * OnConvertTextType is a command event handler to change a text type to an other one. ++ * OnConvertTextType is a command event handler to change a text type to another one. + * The new text, label, hierarchical label, or global label is created from the old text + * The old text is deleted. + * A tricky case is when the 'old" text is being edited (i.e. moving) +diff --git a/eeschema/erc.cpp b/eeschema/erc.cpp +index 099249cf..0ae9c5c2 100644 +--- a/eeschema/erc.cpp ++++ b/eeschema/erc.cpp +@@ -405,7 +405,7 @@ void TestOthersItems( NETLIST_OBJECT_LIST* aList, + { + /* This pin is not connected: for multiple part per + * package, and duplicated pin, +- * search for an other instance of this pin ++ * search for another instance of this pin + * this will be flagged only if all instances of this pin + * are not connected + * TODO test also if instances connected are connected to +@@ -430,7 +430,7 @@ void TestOthersItems( NETLIST_OBJECT_LIST* aList, + continue; + + // Same component and same pin. Do dot create error for this pin +- // if the other pin is connected (i.e. if duplicate net has an other ++ // if the other pin is connected (i.e. if duplicate net has another + // item) + if( (duplicate > 0) + && ( aList->GetItemNet( duplicate ) == +diff --git a/eeschema/erc.h b/eeschema/erc.h +index 708fb6a4..8654b487 100644 +--- a/eeschema/erc.h ++++ b/eeschema/erc.h +@@ -53,8 +53,8 @@ extern const wxString CommentERC_V[]; + #define ERCE_DUPLICATE_SHEET_NAME 1 // duplicate sheet names within a given sheet + #define ERCE_PIN_NOT_CONNECTED 2 // pin not connected and not no connect symbol + #define ERCE_PIN_NOT_DRIVEN 3 // pin connected to some others pins but no pin to drive it +-#define ERCE_PIN_TO_PIN_WARNING 4 // pin connected to an other pin: warning level +-#define ERCE_PIN_TO_PIN_ERROR 5 // pin connected to an other pin: error level ++#define ERCE_PIN_TO_PIN_WARNING 4 // pin connected to another pin: warning level ++#define ERCE_PIN_TO_PIN_ERROR 5 // pin connected to another pin: error level + #define ERCE_HIERACHICAL_LABEL 6 // mismatch between hierarchical labels and pins sheets + #define ERCE_NOCONNECT_CONNECTED 7 // a no connect symbol is connected to more than 1 pin + #define ERCE_GLOBLABEL 8 // global label not connected to any other global label +diff --git a/eeschema/pinedit.cpp b/eeschema/pinedit.cpp +index 1b44172f..96a9c104 100644 +--- a/eeschema/pinedit.cpp ++++ b/eeschema/pinedit.cpp +@@ -236,7 +236,7 @@ void LIB_EDIT_FRAME::PlacePin() + + LIB_PART* part = GetCurPart(); + +- // Test for an other pin in same new position: ++ // Test for another pin in same new position: + for( LIB_PIN* pin = part->GetNextPin(); pin; pin = part->GetNextPin( pin ) ) + { + if( pin == cur_pin || newpos != pin->GetPosition() || pin->GetFlags() ) +diff --git a/eeschema/sch_base_frame.h b/eeschema/sch_base_frame.h +index c99e1a60..1ff78e35 100644 +--- a/eeschema/sch_base_frame.h ++++ b/eeschema/sch_base_frame.h +@@ -169,7 +169,7 @@ protected: + * Function OnOpenLibraryViewer + * Open the library viewer only to browse library contents. + * If the viewed is already opened from this, raise the viewer +- * If the viewed is already opened from an other window, close it and reopen ++ * If the viewed is already opened from another window, close it and reopen + */ + void OnOpenLibraryViewer( wxCommandEvent& event ); + +diff --git a/eeschema/sch_screen.cpp b/eeschema/sch_screen.cpp +index c2f82019..b6f052e3 100644 +--- a/eeschema/sch_screen.cpp ++++ b/eeschema/sch_screen.cpp +@@ -825,7 +825,7 @@ void SCH_SCREEN::SelectBlockItems() + // this selected wire has no ends in block. + // But it was selected (because it intersects the selecting area), + // so we must keep it selected and select items connected to it +- // Note: an other option could be: remove it from drag list ++ // Note: another option could be: remove it from drag list + item->SetFlags( SELECTED | SKIP_STRUCT ); + std::vector< wxPoint > connections; + item->GetConnectionPoints( connections ); +@@ -1227,7 +1227,7 @@ int SCH_SCREEN::GetConnection( const wxPoint& aPosition, PICKED_ITEMS_LIST& aLis + + // when tmp != NULL, segment is a new candidate: + // put it in deleted list if +- // the start point is not connected to an other item (like pin) ++ // the start point is not connected to another item (like pin) + if( tmp && !CountConnectedItems( segment->GetStartPoint(), true ) ) + noconnect = true; + +@@ -1251,7 +1251,7 @@ int SCH_SCREEN::GetConnection( const wxPoint& aPosition, PICKED_ITEMS_LIST& aLis + + // when tmp != NULL, segment is a new candidate: + // put it in deleted list if +- // the end point is not connected to an other item (like pin) ++ // the end point is not connected to another item (like pin) + if( tmp && !CountConnectedItems( segment->GetEndPoint(), true ) ) + noconnect = true; + +diff --git a/eeschema/schframe.h b/eeschema/schframe.h +index 0db8ea82..693331a5 100644 +--- a/eeschema/schframe.h ++++ b/eeschema/schframe.h +@@ -903,7 +903,7 @@ private: + + /** + * Function OnCovertTextType +- * is a command event handler to change a text type to an other one. The new text, ++ * is a command event handler to change a text type to another one. The new text, + * label, hierarchical label, or global label is created from the old text and the + * old text is deleted. + */ +@@ -913,7 +913,7 @@ private: + * Function BeginSegment + * creates a new segment ( WIRE, BUS ) or terminates the current segment in progress. + * +- * If the end of the current segment is on an other segment, place a junction if needed ++ * If the end of the current segment is on another segment, place a junction if needed + * and terminates the command. If the end of the current segment is on a pin, terminate + * the command. In all other cases starts a new segment. + */ +diff --git a/eeschema/viewlib_frame.cpp b/eeschema/viewlib_frame.cpp +index ddcefa97..ed13bfaa 100644 +--- a/eeschema/viewlib_frame.cpp ++++ b/eeschema/viewlib_frame.cpp +@@ -443,7 +443,7 @@ void LIB_VIEW_FRAME::SetSelectedLibrary( const wxString& aLibraryName ) + + // Ensure the corresponding line in m_libList is selected + // (which is not necessary the case if SetSelectedLibrary is called +- // by an other caller than ClickOnLibList. ++ // by another caller than ClickOnLibList. + m_libList->SetStringSelection( m_libraryName, true ); + } + +diff --git a/gerbview/gerbview_frame.h b/gerbview/gerbview_frame.h +index 383ab544..4675b2ba 100644 +--- a/gerbview/gerbview_frame.h ++++ b/gerbview/gerbview_frame.h +@@ -355,7 +355,7 @@ public: + /** + * Function GetNegativeItemsColor + * @return the color of negative items. +- * This is usually the background color, but can be an other color ++ * This is usually the background color, but can be another color + * in order to see negative objects + */ + EDA_COLOR_T GetNegativeItemsColor() const; +diff --git a/include/class_bitmap_base.h b/include/class_bitmap_base.h +index 53c5b835..9fe28e9f 100644 +--- a/include/class_bitmap_base.h ++++ b/include/class_bitmap_base.h +@@ -35,7 +35,7 @@ class PLOTTER; + + /** + * This class handle bitmap images in KiCad. +- * It is not intended to be used alone, but inside an other class, ++ * It is not intended to be used alone, but inside another class, + * so all methods are protected ( or private ) + * It is used in SCH_BITMAP class and WS_DRAW_ITEM_BITMAP (and other in future) + * +diff --git a/include/class_drawpanel.h b/include/class_drawpanel.h +index 14ad1042..5f71a041 100644 +--- a/include/class_drawpanel.h ++++ b/include/class_drawpanel.h +@@ -113,7 +113,7 @@ private: + END_MOUSE_CAPTURE_CALLBACK m_endMouseCaptureCallback; + + /// useful to avoid false start block in certain cases +- /// (like switch from a sheet to an other sheet ++ /// (like switch from a sheet to another sheet + /// >= 0 (or >= n) if a block can start + int m_canStartBlock; + +diff --git a/include/class_undoredo_container.h b/include/class_undoredo_container.h +index 13c9e85b..f3473dbf 100644 +--- a/include/class_undoredo_container.h ++++ b/include/class_undoredo_container.h +@@ -89,7 +89,7 @@ private: + * edited item. */ + KICAD_T m_pickedItemType; /* type of schematic or board item that is concerned */ + +- EDA_ITEM* m_link; /* Pointer on an other item. Used in undo redo command ++ EDA_ITEM* m_link; /* Pointer on another item. Used in undo redo command + * used when a duplicate exists i.e. when an item is + * modified, and the copy of initial item exists (the + * duplicate) m_Item points the duplicate (i.e the old +diff --git a/include/dsnlexer.h b/include/dsnlexer.h +index ded81c75..33bbc43d 100644 +--- a/include/dsnlexer.h ++++ b/include/dsnlexer.h +@@ -219,7 +219,7 @@ public: + * Useable only for DSN lexers which share the same LINE_READER + * Synchronizes the pointers handling the data read by the LINE_READER + * Allows 2 DNSLEXER to share the same current line, when switching from a +- * DNSLEXER to an other DNSLEXER ++ * DNSLEXER to another DNSLEXER + * @param aLexer = the model + * @return true if the sync can be made ( at least the same line reader ) + */ +diff --git a/include/gal/opengl/glm/ext.hpp b/include/gal/opengl/glm/ext.hpp +index 9ef0c927..2068e43f 100644 +--- a/include/gal/opengl/glm/ext.hpp ++++ b/include/gal/opengl/glm/ext.hpp +@@ -60,7 +60,7 @@ + + #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED)) + # define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED +-# pragma message("GLM: All extensions included (not recommanded)") ++# pragma message("GLM: All extensions included (not recommended)") + #endif//GLM_MESSAGES + + #include "./gtc/constants.hpp" +diff --git a/include/gal/opengl/glm/gtc/matrix_transform.hpp b/include/gal/opengl/glm/gtc/matrix_transform.hpp +index 020c6dd9..3fc55c95 100644 +--- a/include/gal/opengl/glm/gtc/matrix_transform.hpp ++++ b/include/gal/opengl/glm/gtc/matrix_transform.hpp +@@ -62,7 +62,7 @@ namespace glm + /// + /// @param m Input matrix multiplied by this translation matrix. + /// @param v Coordinates of a translation vector. +- /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double. ++ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double. + /// @code + /// #include + /// #include +@@ -87,7 +87,7 @@ namespace glm + /// + /// @param m Input matrix multiplied by this rotation matrix. + /// @param angle Rotation angle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. +- /// @param axis Rotation axis, recommanded to be normalized. ++ /// @param axis Rotation axis, recommended to be normalized. + /// @tparam T Value type used to build the matrix. Supported: half, float or double. + /// @see gtc_matrix_transform + /// @see gtx_transform +@@ -104,7 +104,7 @@ namespace glm + /// + /// @param m Input matrix multiplied by this scale matrix. + /// @param v Ratio of scaling for each axis. +- /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double. ++ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double. + /// @see gtc_matrix_transform + /// @see gtx_transform + /// @see - scale(T x, T y, T z) scale(T const & x, T const & y, T const & z) +@@ -123,7 +123,7 @@ namespace glm + /// @param top + /// @param zNear + /// @param zFar +- /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double. ++ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double. + /// @see gtc_matrix_transform + /// @see - glm::ortho(T const & left, T const & right, T const & bottom, T const & top) + template +@@ -141,7 +141,7 @@ namespace glm + /// @param right + /// @param bottom + /// @param top +- /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double. ++ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double. + /// @see gtc_matrix_transform + /// @see - glm::ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar) + template +@@ -159,7 +159,7 @@ namespace glm + /// @param top + /// @param near + /// @param far +- /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double. ++ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double. + /// @see gtc_matrix_transform + template + detail::tmat4x4 frustum( +@@ -176,7 +176,7 @@ namespace glm + /// @param aspect + /// @param near + /// @param far +- /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double. ++ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double. + /// @see gtc_matrix_transform + template + detail::tmat4x4 perspective( +@@ -192,7 +192,7 @@ namespace glm + /// @param height + /// @param near + /// @param far +- /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double. ++ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double. + /// @see gtc_matrix_transform + template + detail::tmat4x4 perspectiveFov( +@@ -207,7 +207,7 @@ namespace glm + /// @param fovy Expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. + /// @param aspect + /// @param near +- /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double. ++ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double. + /// @see gtc_matrix_transform + template + detail::tmat4x4 infinitePerspective( +@@ -218,7 +218,7 @@ namespace glm + /// @param fovy Expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. + /// @param aspect + /// @param near +- /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double. ++ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommended), float or double. + /// @see gtc_matrix_transform + template + detail::tmat4x4 tweakedInfinitePerspective( +@@ -230,7 +230,7 @@ namespace glm + /// @param model + /// @param proj + /// @param viewport +- /// @tparam T Native type used for the computation. Currently supported: half (not recommanded), float or double. ++ /// @tparam T Native type used for the computation. Currently supported: half (not recommended), float or double. + /// @tparam U Currently supported: Floating-point types and integer types. + /// @see gtc_matrix_transform + template +@@ -246,7 +246,7 @@ namespace glm + /// @param model + /// @param proj + /// @param viewport +- /// @tparam T Native type used for the computation. Currently supported: half (not recommanded), float or double. ++ /// @tparam T Native type used for the computation. Currently supported: half (not recommended), float or double. + /// @tparam U Currently supported: Floating-point types and integer types. + /// @see gtc_matrix_transform + template +@@ -261,7 +261,7 @@ namespace glm + /// @param center + /// @param delta + /// @param viewport +- /// @tparam T Native type used for the computation. Currently supported: half (not recommanded), float or double. ++ /// @tparam T Native type used for the computation. Currently supported: half (not recommended), float or double. + /// @tparam U Currently supported: Floating-point types and integer types. + /// @see gtc_matrix_transform + template +diff --git a/include/gal/opengl/glm/gtc/random.hpp b/include/gal/opengl/glm/gtc/random.hpp +index 3cda59c7..98d9b564 100644 +--- a/include/gal/opengl/glm/gtc/random.hpp ++++ b/include/gal/opengl/glm/gtc/random.hpp +@@ -57,7 +57,7 @@ namespace glm + /// + /// @param Min + /// @param Max +- /// @tparam genType Value type. Currently supported: half (not recommanded), float or double scalars and vectors. ++ /// @tparam genType Value type. Currently supported: half (not recommended), float or double scalars and vectors. + /// @see gtc_random + template + genType linearRand( +diff --git a/pagelayout_editor/pl_editor_frame.h b/pagelayout_editor/pl_editor_frame.h +index ba3b7aeb..e278d998 100644 +--- a/pagelayout_editor/pl_editor_frame.h ++++ b/pagelayout_editor/pl_editor_frame.h +@@ -177,7 +177,7 @@ public: + + /** + * Page layout editor can show the title block using a page number +- * 1 or an other number. ++ * 1 or another number. + * This is because some items can be shown (or not) only on page 1 + * (a feature which look like word processing option + * "page 1 differs from other pages". +diff --git a/pcbnew/class_board.cpp b/pcbnew/class_board.cpp +index a9090500..fb64b067 100644 +--- a/pcbnew/class_board.cpp ++++ b/pcbnew/class_board.cpp +@@ -203,7 +203,7 @@ void BOARD::chainMarkedSegments( wxPoint aPosition, const LSET& aLayerMask, TRAC + * end or not. They will be analyzer later and vias on terminal points + * of the track will be considered as part of this track if they do not + * connect segments of another track together and will be considered as +- * part of an other track when removing the via, the segments of that other ++ * part of another track when removing the via, the segments of that other + * track are disconnected. + */ + for( ; ; ) +diff --git a/pcbnew/connect.cpp b/pcbnew/connect.cpp +index 848c30b5..12bb6a67 100644 +--- a/pcbnew/connect.cpp ++++ b/pcbnew/connect.cpp +@@ -570,7 +570,7 @@ int CONNECTIONS::Merge_SubNets( int aOldSubNet, int aNewSubNet ) + * segments connected together. + * The track list must be sorted by nets, and all segments + * from m_firstTrack to m_lastTrack have the same net +- * When 2 items are connected (a track to a pad, or a track to an other track), ++ * When 2 items are connected (a track to a pad, or a track to another track), + * they are grouped in a cluster. + * The .m_Subnet member is the cluster identifier (subnet id) + * For a given net, if all tracks are created, there is only one cluster. +@@ -655,7 +655,7 @@ void CONNECTIONS::Propagate_SubNets() + } + else + { +- // it is connected to an other segment not in a cluster, so we must ++ // it is connected to another segment not in a cluster, so we must + // create a new cluster (only with the 2 track segments) + sub_netcode++; + curr_track->SetSubNet( sub_netcode ); +diff --git a/pcbnew/connect.h b/pcbnew/connect.h +index 46868c87..89cb4dc5 100644 +--- a/pcbnew/connect.h ++++ b/pcbnew/connect.h +@@ -213,7 +213,7 @@ public: + * segments connected together. + * The track list must be sorted by nets, and all segments + * from m_firstTrack to m_lastTrack have the same net. +- * When 2 items are connected (a track to a pad, or a track to an other track), ++ * When 2 items are connected (a track to a pad, or a track to another track), + * they are grouped in a cluster. + * For pads, this is the .m_physical_connexion member which is a cluster identifier + * For tracks, this is the .m_Subnet member which is a cluster identifier +diff --git a/pcbnew/dialogs/dialog_copper_zones_base.cpp b/pcbnew/dialogs/dialog_copper_zones_base.cpp +index a264412d..9eb9571e 100644 +--- a/pcbnew/dialogs/dialog_copper_zones_base.cpp ++++ b/pcbnew/dialogs/dialog_copper_zones_base.cpp +@@ -191,7 +191,7 @@ DIALOG_COPPER_ZONE_BASE::DIALOG_COPPER_ZONE_BASE( wxWindow* parent, wxWindowID i + + m_staticText171 = new wxStaticText( m_ExportableSetupSizer->GetStaticBox(), wxID_ANY, _("Priority level:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText171->Wrap( -1 ); +- m_staticText171->SetToolTip( _("On each copper layer, zones are filled by priority order.\nSo when a zone is inside an other zone:\n* If its priority is highter: its outlines are removed from the other layer.\n* If its priority is equal: a DRC error is set.") ); ++ m_staticText171->SetToolTip( _("On each copper layer, zones are filled by priority order.\nSo when a zone is inside another zone:\n* If its priority is highter: its outlines are removed from the other layer.\n* If its priority is equal: a DRC error is set.") ); + + m_MiddleBox->Add( m_staticText171, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + +diff --git a/pcbnew/dialogs/dialog_copper_zones_base.fbp b/pcbnew/dialogs/dialog_copper_zones_base.fbp +index 2dd9d40c..9209f4d6 100644 +--- a/pcbnew/dialogs/dialog_copper_zones_base.fbp ++++ b/pcbnew/dialogs/dialog_copper_zones_base.fbp +@@ -2428,7 +2428,7 @@ + + + 0 +- On each copper layer, zones are filled by priority order. So when a zone is inside an other zone: * If its priority is highter: its outlines are removed from the other layer. * If its priority is equal: a DRC error is set. ++ On each copper layer, zones are filled by priority order. So when a zone is inside another zone: * If its priority is highter: its outlines are removed from the other layer. * If its priority is equal: a DRC error is set. + + + +diff --git a/pcbnew/dialogs/dialog_design_rules.cpp b/pcbnew/dialogs/dialog_design_rules.cpp +index 80fe0f8c..6b762628 100644 +--- a/pcbnew/dialogs/dialog_design_rules.cpp ++++ b/pcbnew/dialogs/dialog_design_rules.cpp +@@ -511,7 +511,7 @@ void DIALOG_DESIGN_RULES::CopyRulesListToBoard() + + if( !m_BrdSettings->m_NetClasses.Add( nc ) ) + { +- // this netclass cannot be added because an other netclass with the same name exists ++ // this netclass cannot be added because another netclass with the same name exists + // Should not occur because OnAddNetclassClick() tests for existing NetClass names + wxString msg; + msg.Printf( wxT( "CopyRulesListToBoard(): The NetClass \"%s\" already exists. Skip" ), +diff --git a/pcbnew/dialogs/dialog_export_vrml.cpp b/pcbnew/dialogs/dialog_export_vrml.cpp +index c2165b94..b3af7ccd 100644 +--- a/pcbnew/dialogs/dialog_export_vrml.cpp ++++ b/pcbnew/dialogs/dialog_export_vrml.cpp +@@ -184,7 +184,7 @@ void PCB_EDIT_FRAME::OnExportVRML( wxCommandEvent& event ) + static wxString last_vrmlName; // the last wrml file name built + + // If the board name has changed since the last export, +- // do not use the old path, initialized by an other board ++ // do not use the old path, initialized by another board + if( last_brdName.IsEmpty() || last_brdName != GetBoard()->GetFileName() ) + { + last_brdName = GetBoard()->GetFileName(); +diff --git a/pcbnew/dialogs/dialog_freeroute_exchange_help.html b/pcbnew/dialogs/dialog_freeroute_exchange_help.html +index 375df66c..61eb6ff7 100644 +--- a/pcbnew/dialogs/dialog_freeroute_exchange_help.html ++++ b/pcbnew/dialogs/dialog_freeroute_exchange_help.html +@@ -40,7 +40,7 @@ +
  • in freerouter: load the project's *.dsn file. Immediately after a load, all + components and traces (if any) will initially be 'fixed'. This is a 'lock + in place' toggle that you can undo by selecting a region with your mouse +- and then selecting 'Unfix' from the menu. Occassionally you may want to ++ and then selecting 'Unfix' from the menu. Occasionally you may want to + re-fix a trace or a part, if only temporarily. This keeps it locked in + place. +

  • +diff --git a/pcbnew/dialogs/dialog_gendrill_base.cpp b/pcbnew/dialogs/dialog_gendrill_base.cpp +index e868e1f9..92451b9c 100644 +--- a/pcbnew/dialogs/dialog_gendrill_base.cpp ++++ b/pcbnew/dialogs/dialog_gendrill_base.cpp +@@ -83,17 +83,17 @@ DIALOG_GENDRILL_BASE::DIALOG_GENDRILL_BASE( wxWindow* parent, wxWindowID id, con + sbOptSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Drill File Options:") ), wxVERTICAL ); + + m_Check_Mirror = new wxCheckBox( sbOptSizer->GetStaticBox(), wxID_ANY, _("Mirror y axis"), wxDefaultPosition, wxDefaultSize, 0 ); +- m_Check_Mirror->SetToolTip( _("Not recommanded.\nUsed mostly by users who make themselves the boards.") ); ++ m_Check_Mirror->SetToolTip( _("Not recommended.\nUsed mostly by users who make themselves the boards.") ); + + sbOptSizer->Add( m_Check_Mirror, 0, wxRIGHT|wxLEFT, 5 ); + + m_Check_Minimal = new wxCheckBox( sbOptSizer->GetStaticBox(), wxID_ANY, _("Minimal header"), wxDefaultPosition, wxDefaultSize, 0 ); +- m_Check_Minimal->SetToolTip( _("Not recommanded.\nUse it only for board houses which do not accept fully featured headers.") ); ++ m_Check_Minimal->SetToolTip( _("Not recommended.\nUse it only for board houses which do not accept fully featured headers.") ); + + sbOptSizer->Add( m_Check_Minimal, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_Check_Merge_PTH_NPTH = new wxCheckBox( sbOptSizer->GetStaticBox(), wxID_ANY, _("Merge PTH and NPTH holes into one file"), wxDefaultPosition, wxDefaultSize, 0 ); +- m_Check_Merge_PTH_NPTH->SetToolTip( _("Not recommanded.\nUse it only for board houses which ask for merged PTH and NPTH into onlu one file") ); ++ m_Check_Merge_PTH_NPTH->SetToolTip( _("Not recommended.\nUse it only for board houses which ask for merged PTH and NPTH into onlu one file") ); + + sbOptSizer->Add( m_Check_Merge_PTH_NPTH, 0, wxALL, 5 ); + +diff --git a/pcbnew/dialogs/dialog_gendrill_base.fbp b/pcbnew/dialogs/dialog_gendrill_base.fbp +index 73fef325..8ccb9e9a 100644 +--- a/pcbnew/dialogs/dialog_gendrill_base.fbp ++++ b/pcbnew/dialogs/dialog_gendrill_base.fbp +@@ -759,7 +759,7 @@ + + + 0 +- Not recommanded. Used mostly by users who make themselves the boards. ++ Not recommended. Used mostly by users who make themselves the boards. + + wxFILTER_NONE + wxDefaultValidator +@@ -847,7 +847,7 @@ + + + 0 +- Not recommanded. Use it only for board houses which do not accept fully featured headers. ++ Not recommended. Use it only for board houses which do not accept fully featured headers. + + wxFILTER_NONE + wxDefaultValidator +@@ -935,7 +935,7 @@ + + + 0 +- Not recommanded. Use it only for board houses which ask for merged PTH and NPTH into onlu one file ++ Not recommended. Use it only for board houses which ask for merged PTH and NPTH into onlu one file + + wxFILTER_NONE + wxDefaultValidator +diff --git a/pcbnew/dialogs/dialog_keepout_area_properties_base.cpp b/pcbnew/dialogs/dialog_keepout_area_properties_base.cpp +index 0665261b..6a83094e 100644 +--- a/pcbnew/dialogs/dialog_keepout_area_properties_base.cpp ++++ b/pcbnew/dialogs/dialog_keepout_area_properties_base.cpp +@@ -52,7 +52,7 @@ DIALOG_KEEPOUT_AREA_PROPERTIES_BASE::DIALOG_KEEPOUT_AREA_PROPERTIES_BASE( wxWind + + wxString m_OutlineAppearanceCtrlChoices[] = { _("Line"), _("Hatched Outline"), _("Full Hatched") }; + int m_OutlineAppearanceCtrlNChoices = sizeof( m_OutlineAppearanceCtrlChoices ) / sizeof( wxString ); +- m_OutlineAppearanceCtrl = new wxRadioBox( this, wxID_ANY, _("Outline Appearence:"), wxDefaultPosition, wxDefaultSize, m_OutlineAppearanceCtrlNChoices, m_OutlineAppearanceCtrlChoices, 1, wxRA_SPECIFY_COLS ); ++ m_OutlineAppearanceCtrl = new wxRadioBox( this, wxID_ANY, _("Outline Appearance:"), wxDefaultPosition, wxDefaultSize, m_OutlineAppearanceCtrlNChoices, m_OutlineAppearanceCtrlChoices, 1, wxRA_SPECIFY_COLS ); + m_OutlineAppearanceCtrl->SetSelection( 1 ); + bSizerRight->Add( m_OutlineAppearanceCtrl, 0, wxALL|wxEXPAND, 5 ); + +diff --git a/pcbnew/dialogs/dialog_keepout_area_properties_base.fbp b/pcbnew/dialogs/dialog_keepout_area_properties_base.fbp +index 926ae8b8..5fc7b1ca 100644 +--- a/pcbnew/dialogs/dialog_keepout_area_properties_base.fbp ++++ b/pcbnew/dialogs/dialog_keepout_area_properties_base.fbp +@@ -516,7 +516,7 @@ + 0 + 0 + wxID_ANY +- Outline Appearence: ++ Outline Appearance: + 1 + + 0 +diff --git a/pcbnew/dialogs/dialog_non_copper_zones_properties_base.cpp b/pcbnew/dialogs/dialog_non_copper_zones_properties_base.cpp +index c41ffc28..6d32e86f 100644 +--- a/pcbnew/dialogs/dialog_non_copper_zones_properties_base.cpp ++++ b/pcbnew/dialogs/dialog_non_copper_zones_properties_base.cpp +@@ -51,7 +51,7 @@ DIALOG_NONCOPPER_ZONES_PROPERTIES_BASE::DIALOG_NONCOPPER_ZONES_PROPERTIES_BASE( + + wxString m_OutlineAppearanceCtrlChoices[] = { _("Line"), _("Hatched Outline"), _("Full Hatched") }; + int m_OutlineAppearanceCtrlNChoices = sizeof( m_OutlineAppearanceCtrlChoices ) / sizeof( wxString ); +- m_OutlineAppearanceCtrl = new wxRadioBox( this, wxID_ANY, _("Outlines Appearence"), wxDefaultPosition, wxDefaultSize, m_OutlineAppearanceCtrlNChoices, m_OutlineAppearanceCtrlChoices, 1, wxRA_SPECIFY_COLS ); ++ m_OutlineAppearanceCtrl = new wxRadioBox( this, wxID_ANY, _("Outlines Appearance"), wxDefaultPosition, wxDefaultSize, m_OutlineAppearanceCtrlNChoices, m_OutlineAppearanceCtrlChoices, 1, wxRA_SPECIFY_COLS ); + m_OutlineAppearanceCtrl->SetSelection( 1 ); + m_OutilinesBoxOpt->Add( m_OutlineAppearanceCtrl, 0, wxALL|wxEXPAND, 5 ); + +diff --git a/pcbnew/dialogs/dialog_non_copper_zones_properties_base.fbp b/pcbnew/dialogs/dialog_non_copper_zones_properties_base.fbp +index 20f62960..58ae33ab 100644 +--- a/pcbnew/dialogs/dialog_non_copper_zones_properties_base.fbp ++++ b/pcbnew/dialogs/dialog_non_copper_zones_properties_base.fbp +@@ -445,7 +445,7 @@ + 0 + 0 + wxID_ANY +- Outlines Appearence ++ Outlines Appearance + 1 + + 0 +diff --git a/pcbnew/dialogs/wizard_3DShape_Libs_downloader.cpp b/pcbnew/dialogs/wizard_3DShape_Libs_downloader.cpp +index 08e61ffc..6506552a 100644 +--- a/pcbnew/dialogs/wizard_3DShape_Libs_downloader.cpp ++++ b/pcbnew/dialogs/wizard_3DShape_Libs_downloader.cpp +@@ -107,7 +107,7 @@ WIZARD_3DSHAPE_LIBS_DOWNLOADER::WIZARD_3DSHAPE_LIBS_DOWNLOADER( wxWindow* aParen + // and not fully visible. + // Forcing deselection does not work, at least on W7 with wxWidgets 3.0.2 + // So (and also because m_textCtrlGithubURL and m_downloadDir are rarely modified +- // the focus is given to an other widget. ++ // the focus is given to another widget. + m_hyperlinkGithubKicad->SetFocus(); + + Connect( wxEVT_RADIOBUTTON, wxCommandEventHandler( WIZARD_3DSHAPE_LIBS_DOWNLOADER::OnSourceCheck ), NULL, this ); +diff --git a/pcbnew/drc_clearance_test_functions.cpp b/pcbnew/drc_clearance_test_functions.cpp +index 39d1b9d0..4c440354 100644 +--- a/pcbnew/drc_clearance_test_functions.cpp ++++ b/pcbnew/drc_clearance_test_functions.cpp +@@ -278,7 +278,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads ) + { + D_PAD* pad = m_pcb->GetPad( ii ); + +- /* No problem if pads are on an other layer, ++ /* No problem if pads are on another layer, + * But if a drill hole exists (a pad on a single layer can have a hole!) + * we must test the hole + */ +@@ -409,7 +409,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads ) + + /* We have changed axis: + * the reference segment is Horizontal. +- * 3 cases : the segment to test can be parallel, perpendicular or have an other direction ++ * 3 cases : the segment to test can be parallel, perpendicular or have another direction + */ + if( segStartPoint.y == segEndPoint.y ) // parallel segments + { +diff --git a/pcbnew/onrightclick.cpp b/pcbnew/onrightclick.cpp +index 68c83a36..f673df90 100644 +--- a/pcbnew/onrightclick.cpp ++++ b/pcbnew/onrightclick.cpp +@@ -635,7 +635,7 @@ void PCB_EDIT_FRAME::createPopupMenuForTracks( TRACK* Track, wxMenu* PopMenu ) + } + } + +- // Allows switching to an other track/via size when routing ++ // Allows switching to another track/via size when routing + AddMenuItem( PopMenu, Append_Track_Width_List( GetBoard() ), ID_POPUP_PCB_SELECT_WIDTH, + _( "Select Track Width" ), KiBitmap( width_track_xpm ) ); + +diff --git a/pcbnew/plot_board_layers.cpp b/pcbnew/plot_board_layers.cpp +index 6ccbdd57..ce2f20e1 100644 +--- a/pcbnew/plot_board_layers.cpp ++++ b/pcbnew/plot_board_layers.cpp +@@ -957,7 +957,7 @@ PLOTTER* StartPlotBoard( BOARD *aBoard, PCB_PLOT_PARAMS *aPlotOpts, + HPGL_plotter = new HPGL_PLOTTER(); + + /* HPGL options are a little more convoluted to compute, so +- they're split in an other function */ ++ they're split in another function */ + ConfigureHPGLPenSizes( HPGL_plotter, aPlotOpts ); + plotter = HPGL_plotter; + break; +diff --git a/pcbnew/ratsnest.cpp b/pcbnew/ratsnest.cpp +index b3880859..ee00c222 100644 +--- a/pcbnew/ratsnest.cpp ++++ b/pcbnew/ratsnest.cpp +@@ -342,7 +342,7 @@ static int tst_links_between_blocks( NETINFO_ITEM* aNetinfo, + int subratsnest_id, min_id; + RATSNEST_ITEM* link, * best_link; + +- // Search a link from a block to an other block ++ // Search a link from a block to another block + best_link = NULL; + + for( unsigned ii = aNetinfo->m_RatsnestStartIdx; ii < aNetinfo->m_RatsnestEndIdx; ii++ ) +@@ -456,7 +456,7 @@ static void tst_links_between_pads( int & aCurrSubRatsnestId, + * - First: + * Initialise for each pad the subratsnest id to its subnet value + * explore the full ratnest (relative to the net) and active a link each time at least one pad of +- * the given link is not connected to an other pad by a track ( subratsnest = 0) ++ * the given link is not connected to another pad by a track ( subratsnest = 0) + * If the 2 pads linked have both the subratsnest id = 0, a new subratsnest value is created + * - Second: + * explore the full ratnest (relative to the net) and find a link that links +diff --git a/pcbnew/zones_by_polygon.cpp b/pcbnew/zones_by_polygon.cpp +index 31db133a..4e833a08 100644 +--- a/pcbnew/zones_by_polygon.cpp ++++ b/pcbnew/zones_by_polygon.cpp +@@ -129,7 +129,7 @@ void PCB_EDIT_FRAME::duplicateZone( wxDC* aDC, ZONE_CONTAINER* aZone ) + { + DisplayError( this, + _( "The duplicated zone is on the same layer as the initial zone, which has no sense.\n" +- "Please, choose an other layer for the new zone") ); ++ "Please, choose another layer for the new zone") ); + success = false; + } + +@@ -684,7 +684,7 @@ int PCB_EDIT_FRAME::Begin_Zone( wxDC* DC ) + // PCB_EDIT_FRAME::SetCurItem() calls DisplayInfo(). + GetScreen()->SetCurItem( NULL ); + DisplayError( this, +- _( "DRC error: this start point is inside or too close an other area" ) ); ++ _( "DRC error: this start point is inside or too close another area" ) ); + return 0; + } + +@@ -743,7 +743,7 @@ bool PCB_EDIT_FRAME::End_Zone( wxDC* DC ) + if( g_Drc_On && m_drc->Drc( zone, icorner ) == BAD_DRC ) // we can't validate the closing edge + { + DisplayError( this, +- _( "DRC error: closing this area creates a DRC error with an other area" ) ); ++ _( "DRC error: closing this area creates a DRC error with another area" ) ); + m_canvas->MoveCursorToCrossHair(); + return false; + } +diff --git a/pcbnew/zones_functions_for_undo_redo.cpp b/pcbnew/zones_functions_for_undo_redo.cpp +index 65e761f0..46eeb953 100644 +--- a/pcbnew/zones_functions_for_undo_redo.cpp ++++ b/pcbnew/zones_functions_for_undo_redo.cpp +@@ -184,7 +184,7 @@ int SaveCopyOfZones( PICKED_ITEMS_LIST& aPickList, BOARD* aPcb, int aNetCode, LA + * its status becomes UR_DELETED + * the aAuxiliaryList corresponding picker is removed (if not found : set an error) + * >> if the picked zone was flagged as UR_NEW, and was after deleted , +- * perhaps combined with an other zone (i.e. not found in board list): ++ * perhaps combined with another zone (i.e. not found in board list): + * the picker is removed + * the zone itself if really deleted + * the aAuxiliaryList corresponding picker is removed (if not found : set an error) +@@ -262,7 +262,7 @@ void UpdateCopyOfZonesList( PICKED_ITEMS_LIST& aPickList, + { + DBG( printf( + "UpdateCopyOfZonesList(): item not found in aAuxiliaryList," +- "combined with an other zone\n" ) ); ++ "combined with another zone\n" ) ); + } + break; + } +diff --git a/pcbnew/zones_test_and_combine_areas.cpp b/pcbnew/zones_test_and_combine_areas.cpp +index 97937562..667e72a8 100644 +--- a/pcbnew/zones_test_and_combine_areas.cpp ++++ b/pcbnew/zones_test_and_combine_areas.cpp +@@ -253,7 +253,7 @@ bool BOARD::TestAreaIntersection( ZONE_CONTAINER* area_ref, ZONE_CONTAINER* area + } + } + +- // If a contour is inside an other contour, no segments intersects, but the zones ++ // If a contour is inside another contour, no segments intersects, but the zones + // can be combined if a corner is inside an outline (only one corner is enought) + for( int ic2 = 0; ic2 < poly2->GetCornersCount(); ic2++ ) + { diff --git a/patches/fixes/KiCadDocumentation.cmake-fix-install-target-for-HTML-docu.patch b/patches/fixes/KiCadDocumentation.cmake-fix-install-target-for-HTML-docu.patch new file mode 100644 index 00000000..2c00b902 --- /dev/null +++ b/patches/fixes/KiCadDocumentation.cmake-fix-install-target-for-HTML-docu.patch @@ -0,0 +1,49 @@ +From: Carsten Schoenert +Date: Sun, 25 Sep 2016 09:56:25 +0200 +Subject: KiCadDocumentation.cmake: fix install target for HTML docu + +The old default behaviour while installing the generated HTML content is +to install the whole images/$LANG folders into every generated language. +This was producing a lot of useless duplicated data. After applying a +commit from upstream [1] this problem was partially fixed, but the +default images were not installed. + +This commit fixes changing the kind of creating the list for the default +images that will be installed in a next step. Also the images from the +English language is needed as some howtos use them. + +[1] https://github.com/KiCad/kicad-doc/commit/027c096941105048da8921ac2d8bc4d1594b14a9 +--- + doc/CMakeModules/KiCadDocumentation.cmake | 16 +++++++++++----- + 1 file changed, 11 insertions(+), 5 deletions(-) + +diff --git a/doc/CMakeModules/KiCadDocumentation.cmake b/doc/CMakeModules/KiCadDocumentation.cmake +index 884f46bf..8c80b030 100644 +--- a/doc/CMakeModules/KiCadDocumentation.cmake ++++ b/doc/CMakeModules/KiCadDocumentation.cmake +@@ -136,14 +136,20 @@ macro( KiCadDocumentation DOCNAME ) + add_dependencies( ${DOCNAME} ${DOCNAME}_html_${LANGUAGE} ) + + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGE}/${DOCNAME}.html DESTINATION ${KICAD_DOC_PATH}/${LANGUAGE} COMPONENT html-${LANGUAGE} ) ++ # install the images/en/ folder if not already done, the folder contains the default images ++ if( NOT "${KICAD_DOC_PATH}/${LANGUAGE}/images/en" EQUAL "-1" ) ++ install( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGE}/images/en DESTINATION ${KICAD_DOC_PATH}/${LANGUAGE}/images COMPONENT html-${LANGUAGE} OPTIONAL PATTERN "*.png") ++ endif() + +- # It seems to be nescesary to use diffrent install commands to +- # install the images properly without having other lagunages +- # polluting the images folder ++ # collectings the default *.png files from the source tree and install them ++ file( GLOB COMMONPNGFILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/images" "${CMAKE_CURRENT_SOURCE_DIR}/images/*.png" ) ++ foreach( PNGFILE ${COMMONPNGFILES} ) ++ # install the common used images into the root images folder ++ install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGE}/images/${PNGFILE} DESTINATION ${KICAD_DOC_PATH}/${LANGUAGE}/images COMPONENT html-${LANGUAGE} ) ++ endforeach() ++ # install the specific images from the desired language + install( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGE}/images/${LANGUAGE} DESTINATION ${KICAD_DOC_PATH}/${LANGUAGE}/images COMPONENT html-${LANGUAGE} OPTIONAL PATTERN "*.png") + install( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGE}/images/icons DESTINATION ${KICAD_DOC_PATH}/${LANGUAGE}/images COMPONENT html-${LANGUAGE} OPTIONAL PATTERN "*.png") +- file(GLOB UNIVERSAL_IMAGES "${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGE}/images/*.png") +- install( FILES ${UNIVERSAL_IMAGES} DESTINATION ${KICAD_DOC_PATH}/${LANGUAGE}/images COMPONENT html-${LANGUAGE} ) + endif() + + diff --git a/patches/fixes/Modifing-the-Exec-cmd-in-the-desktop-files.patch b/patches/fixes/Modifing-the-Exec-cmd-in-the-desktop-files.patch new file mode 100644 index 00000000..eb708018 --- /dev/null +++ b/patches/fixes/Modifing-the-Exec-cmd-in-the-desktop-files.patch @@ -0,0 +1,107 @@ +From: Georges Khaznadar +Date: Sat, 3 Sep 2016 17:57:10 +0200 +Subject: Modifing the Exec cmd in the desktop-files + +Fixup the *.desktop files and add a file handler to the Exec key. +https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html +--- + resources/linux/mime/applications/bitmap2component.desktop | 3 ++- + resources/linux/mime/applications/cvpcb.desktop | 2 +- + resources/linux/mime/applications/eeschema.desktop | 1 + + resources/linux/mime/applications/gerbview.desktop | 3 ++- + resources/linux/mime/applications/kicad.desktop | 1 + + resources/linux/mime/applications/pcbcalculator.desktop | 3 ++- + resources/linux/mime/applications/pcbnew.desktop | 1 + + 7 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/resources/linux/mime/applications/bitmap2component.desktop b/resources/linux/mime/applications/bitmap2component.desktop +index f2ff0240..07a71ad7 100644 +--- a/resources/linux/mime/applications/bitmap2component.desktop ++++ b/resources/linux/mime/applications/bitmap2component.desktop +@@ -1,7 +1,8 @@ + [Desktop Entry] + Categories=Development;Electronics; + Comment=Create a component from a bitmap for use with KiCad +-Exec=bitmap2component ++Exec=bitmap2component %f ++Keywords=Bitmap;Converter; + GenericName=EDA Suite + Icon=bitmap2component + MimeType=application/x-bitmap2component-project; +diff --git a/resources/linux/mime/applications/cvpcb.desktop b/resources/linux/mime/applications/cvpcb.desktop +index 4610839e..eadbc64d 100644 +--- a/resources/linux/mime/applications/cvpcb.desktop ++++ b/resources/linux/mime/applications/cvpcb.desktop +@@ -1,7 +1,7 @@ + [Desktop Entry] + Categories=Development;Electronics; + Comment=Assign footprints to symbols (part of KiCad) +-Exec=cvpcb ++Exec=cvpcb %f + GenericName=EDA Suite + Icon=cvpcb + MimeType=application/x-cvpcb-project; +diff --git a/resources/linux/mime/applications/eeschema.desktop b/resources/linux/mime/applications/eeschema.desktop +index 41b1ba32..3ed46951 100644 +--- a/resources/linux/mime/applications/eeschema.desktop ++++ b/resources/linux/mime/applications/eeschema.desktop +@@ -3,6 +3,7 @@ Categories=Development;Electronics; + Comment=Design an electronic schematic + Comment[fr]=Dessiner des schémas électroniques + Exec=eeschema %f ++Keywords=Schematic;Editor; + GenericName=Electronic schematic design + GenericName[fr]=Saisie de schéma électronique + Icon=eeschema +diff --git a/resources/linux/mime/applications/gerbview.desktop b/resources/linux/mime/applications/gerbview.desktop +index 42e3a836..5f983161 100644 +--- a/resources/linux/mime/applications/gerbview.desktop ++++ b/resources/linux/mime/applications/gerbview.desktop +@@ -1,7 +1,8 @@ + [Desktop Entry] + Categories=Development;Electronics; + Comment=View gerber files +-Exec=gerbview ++Exec=gerbview %f ++Keywords=PCB;Viewer; + GenericName=EDA Suite + Icon=gerbview + MimeType=application/x-gerbview-project; +diff --git a/resources/linux/mime/applications/kicad.desktop b/resources/linux/mime/applications/kicad.desktop +index e9df0f0a..d2dc06af 100644 +--- a/resources/linux/mime/applications/kicad.desktop ++++ b/resources/linux/mime/applications/kicad.desktop +@@ -3,6 +3,7 @@ Categories=Development;Electronics; + Comment=Design a printed circuit board + Comment[fr]=Concevoir un circuit imprimé + Exec=kicad %f ++Keywords=Kicad;Projectmanager; + GenericName=EDA Suite + GenericName[fr]=Suite logicielle de conception électronique + Icon=kicad +diff --git a/resources/linux/mime/applications/pcbcalculator.desktop b/resources/linux/mime/applications/pcbcalculator.desktop +index ce37e646..31312609 100644 +--- a/resources/linux/mime/applications/pcbcalculator.desktop ++++ b/resources/linux/mime/applications/pcbcalculator.desktop +@@ -1,7 +1,8 @@ + [Desktop Entry] + Categories=Development;Electronics; + Comment=Calculator for various electronics related computations +-Exec=pcb_calculator ++Exec=pcb_calculator %f ++Keywords=PCB;Caculator; + GenericName=EDA Suite + Icon=pcbcalculator + MimeType=application/x-pcbcalculator-project; +diff --git a/resources/linux/mime/applications/pcbnew.desktop b/resources/linux/mime/applications/pcbnew.desktop +index 120231ed..ba7bed1a 100644 +--- a/resources/linux/mime/applications/pcbnew.desktop ++++ b/resources/linux/mime/applications/pcbnew.desktop +@@ -2,6 +2,7 @@ + Categories=Development;Electronics; + Comment=Layout a printed circuit board + Exec=pcbnew %f ++Keywords=PCB;Circuit;Layout;Design;Editor;Footprint; + GenericName=EDA Suite + Icon=pcbnew + MimeType=application/x-pcbnew-pcb; diff --git a/patches/fixes/Remove-unused-FindOpenSSL.cmake.patch b/patches/fixes/Remove-unused-FindOpenSSL.cmake.patch new file mode 100644 index 00000000..eb382c2e --- /dev/null +++ b/patches/fixes/Remove-unused-FindOpenSSL.cmake.patch @@ -0,0 +1,357 @@ +From: Simon Richter +Date: Thu, 5 May 2016 10:31:26 +0200 +Subject: Remove unused FindOpenSSL.cmake + +--- + CMakeModules/FindOpenSSL.cmake | 342 ----------------------------------------- + 1 file changed, 342 deletions(-) + delete mode 100644 CMakeModules/FindOpenSSL.cmake + +diff --git a/CMakeModules/FindOpenSSL.cmake b/CMakeModules/FindOpenSSL.cmake +deleted file mode 100644 +index de91787c..00000000 +--- a/CMakeModules/FindOpenSSL.cmake ++++ /dev/null +@@ -1,342 +0,0 @@ +-#.rst: +-# FindOpenSSL +-# ----------- +-# +-# Try to find the OpenSSL encryption library +-# +-# Once done this will define +-# +-# :: +-# +-# OPENSSL_ROOT_DIR - Set this variable to the root installation of OpenSSL +-# +-# +-# +-# Read-Only variables: +-# +-# :: +-# +-# OPENSSL_FOUND - system has the OpenSSL library +-# OPENSSL_INCLUDE_DIR - the OpenSSL include directory +-# OPENSSL_LIBRARIES - The libraries needed to use OpenSSL +-# OPENSSL_VERSION - This is set to $major.$minor.$revision$path (eg. 0.9.8s) +- +-#============================================================================= +-# Copyright 2006-2009 Kitware, Inc. +-# Copyright 2006 Alexander Neundorf +-# Copyright 2009-2011 Mathieu Malaterre +-# +-# Distributed under the OSI-approved BSD License (the "License"); +-# see accompanying file Copyright.txt for details. +-# +-# This software is distributed WITHOUT ANY WARRANTY; without even the +-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +-# See the License for more information. +-#============================================================================= +-# (To distribute this file outside of CMake, substitute the full +-# License text for the above reference.) +- +-if (UNIX) +- find_package(PkgConfig QUIET) +- pkg_check_modules(_OPENSSL QUIET openssl) +-endif () +- +-if (WIN32) +- # http://www.slproweb.com/products/Win32OpenSSL.html +- set(_OPENSSL_ROOT_HINTS +- ${OPENSSL_ROOT_DIR} +- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;Inno Setup: App Path]" +- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;Inno Setup: App Path]" +- ENV OPENSSL_ROOT_DIR +- ) +- file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles) +- set(_OPENSSL_ROOT_PATHS +- "${_programfiles}/OpenSSL" +- "${_programfiles}/OpenSSL-Win32" +- "${_programfiles}/OpenSSL-Win64" +- "C:/OpenSSL/" +- "C:/OpenSSL-Win32/" +- "C:/OpenSSL-Win64/" +- ) +- unset(_programfiles) +-else () +- set(_OPENSSL_ROOT_HINTS +- ${OPENSSL_ROOT_DIR} +- ENV OPENSSL_ROOT_DIR +- ) +-endif () +- +-set(_OPENSSL_ROOT_HINTS_AND_PATHS +- HINTS ${_OPENSSL_ROOT_HINTS} +- PATHS ${_OPENSSL_ROOT_PATHS} +- ) +- +-find_path(OPENSSL_INCLUDE_DIR +- NAMES +- openssl/ssl.h +- ${_OPENSSL_ROOT_HINTS_AND_PATHS} +- HINTS +- ${_OPENSSL_INCLUDEDIR} +- PATH_SUFFIXES +- include +-) +- +-if(WIN32 AND NOT CYGWIN) +- if(MSVC) +- # /MD and /MDd are the standard values - if someone wants to use +- # others, the libnames have to change here too +- # use also ssl and ssleay32 in debug as fallback for openssl < 0.9.8b +- # TODO: handle /MT and static lib +- # In Visual C++ naming convention each of these four kinds of Windows libraries has it's standard suffix: +- # * MD for dynamic-release +- # * MDd for dynamic-debug +- # * MT for static-release +- # * MTd for static-debug +- +- # Implementation details: +- # We are using the libraries located in the VC subdir instead of the parent directory eventhough : +- # libeay32MD.lib is identical to ../libeay32.lib, and +- # ssleay32MD.lib is identical to ../ssleay32.lib +- find_library(LIB_EAY_DEBUG +- NAMES +- libeay32MDd +- libeay32d +- ${_OPENSSL_ROOT_HINTS_AND_PATHS} +- PATH_SUFFIXES +- "lib" +- "VC" +- "lib/VC" +- ) +- +- find_library(LIB_EAY_RELEASE +- NAMES +- libeay32MD +- libeay32 +- ${_OPENSSL_ROOT_HINTS_AND_PATHS} +- PATH_SUFFIXES +- "lib" +- "VC" +- "lib/VC" +- ) +- +- find_library(SSL_EAY_DEBUG +- NAMES +- ssleay32MDd +- ssleay32d +- ${_OPENSSL_ROOT_HINTS_AND_PATHS} +- PATH_SUFFIXES +- "lib" +- "VC" +- "lib/VC" +- ) +- +- find_library(SSL_EAY_RELEASE +- NAMES +- ssleay32MD +- ssleay32 +- ssl +- ${_OPENSSL_ROOT_HINTS_AND_PATHS} +- PATH_SUFFIXES +- "lib" +- "VC" +- "lib/VC" +- ) +- +- set(LIB_EAY_LIBRARY_DEBUG "${LIB_EAY_DEBUG}") +- set(LIB_EAY_LIBRARY_RELEASE "${LIB_EAY_RELEASE}") +- set(SSL_EAY_LIBRARY_DEBUG "${SSL_EAY_DEBUG}") +- set(SSL_EAY_LIBRARY_RELEASE "${SSL_EAY_RELEASE}") +- +- include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake) +- select_library_configurations(LIB_EAY) +- select_library_configurations(SSL_EAY) +- +- mark_as_advanced(LIB_EAY_LIBRARY_DEBUG LIB_EAY_LIBRARY_RELEASE +- SSL_EAY_LIBRARY_DEBUG SSL_EAY_LIBRARY_RELEASE) +- set( OPENSSL_LIBRARIES ${SSL_EAY_LIBRARY} ${LIB_EAY_LIBRARY} ) +- elseif(MINGW) +- message( STATUS "Searching for OpenSSL in MinGW." ) +- # same player, for MinGW +- set(LIB_EAY_NAMES libeay32) +- set(SSL_EAY_NAMES ssleay32) +- list(APPEND LIB_EAY_NAMES crypto) +- list(APPEND SSL_EAY_NAMES ssl) +- +- find_library(LIB_EAY +- NAMES +- ${LIB_EAY_NAMES} +- ${_OPENSSL_ROOT_HINTS_AND_PATHS} +- PATH_SUFFIXES +- "lib" +- "lib/MinGW" +- # Do not search system path. Otherwise the DLL will be found rather than the link library. +- NO_SYSTEM_ENVIRONMENT_PATH +- NO_CMAKE_SYSTEM_PATH +- ) +- +- find_library(SSL_EAY +- NAMES +- ${SSL_EAY_NAMES} +- ${_OPENSSL_ROOT_HINTS_AND_PATHS} +- PATH_SUFFIXES +- "lib" +- "lib/MinGW" +- # Do not search system path. Otherwise the DLL will be found rather than the link library. +- NO_SYSTEM_ENVIRONMENT_PATH +- NO_CMAKE_SYSTEM_PATH +- ) +- +- mark_as_advanced(SSL_EAY LIB_EAY) +- set( OPENSSL_LIBRARIES ${SSL_EAY} ${LIB_EAY} ) +- unset(LIB_EAY_NAMES) +- unset(SSL_EAY_NAMES) +- else() +- # Not sure what to pick for -say- intel, let's use the toplevel ones and hope someone report issues: +- find_library(LIB_EAY +- NAMES +- libeay32 +- ${_OPENSSL_ROOT_HINTS_AND_PATHS} +- HINTS +- ${_OPENSSL_LIBDIR} +- PATH_SUFFIXES +- lib +- ) +- +- find_library(SSL_EAY +- NAMES +- ssleay32 +- ${_OPENSSL_ROOT_HINTS_AND_PATHS} +- HINTS +- ${_OPENSSL_LIBDIR} +- PATH_SUFFIXES +- lib +- ) +- +- mark_as_advanced(SSL_EAY LIB_EAY) +- set( OPENSSL_LIBRARIES ${SSL_EAY} ${LIB_EAY} ) +- endif() +-else() +- +- find_library(OPENSSL_SSL_LIBRARY +- NAMES +- ssl +- ssleay32 +- ssleay32MD +- ${_OPENSSL_ROOT_HINTS_AND_PATHS} +- HINTS +- ${_OPENSSL_LIBDIR} +- PATH_SUFFIXES +- lib +- ) +- +- find_library(OPENSSL_CRYPTO_LIBRARY +- NAMES +- crypto +- ${_OPENSSL_ROOT_HINTS_AND_PATHS} +- HINTS +- ${_OPENSSL_LIBDIR} +- PATH_SUFFIXES +- lib +- ) +- +- mark_as_advanced(OPENSSL_CRYPTO_LIBRARY OPENSSL_SSL_LIBRARY) +- +- # compat defines +- set(OPENSSL_SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY}) +- set(OPENSSL_CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY}) +- +- set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY}) +- +-endif() +- +-function(from_hex HEX DEC) +- string(TOUPPER "${HEX}" HEX) +- set(_res 0) +- string(LENGTH "${HEX}" _strlen) +- +- while (_strlen GREATER 0) +- math(EXPR _res "${_res} * 16") +- string(SUBSTRING "${HEX}" 0 1 NIBBLE) +- string(SUBSTRING "${HEX}" 1 -1 HEX) +- if (NIBBLE STREQUAL "A") +- math(EXPR _res "${_res} + 10") +- elseif (NIBBLE STREQUAL "B") +- math(EXPR _res "${_res} + 11") +- elseif (NIBBLE STREQUAL "C") +- math(EXPR _res "${_res} + 12") +- elseif (NIBBLE STREQUAL "D") +- math(EXPR _res "${_res} + 13") +- elseif (NIBBLE STREQUAL "E") +- math(EXPR _res "${_res} + 14") +- elseif (NIBBLE STREQUAL "F") +- math(EXPR _res "${_res} + 15") +- else() +- math(EXPR _res "${_res} + ${NIBBLE}") +- endif() +- +- string(LENGTH "${HEX}" _strlen) +- endwhile() +- +- set(${DEC} ${_res} PARENT_SCOPE) +-endfunction() +- +-if (OPENSSL_INCLUDE_DIR) +- if (_OPENSSL_VERSION) +- set(OPENSSL_VERSION "${_OPENSSL_VERSION}") +- elseif(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h") +- file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" openssl_version_str +- REGEX "^#[\t ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*") +- +- # The version number is encoded as 0xMNNFFPPS: major minor fix patch status +- # The status gives if this is a developer or prerelease and is ignored here. +- # Major, minor, and fix directly translate into the version numbers shown in +- # the string. The patch field translates to the single character suffix that +- # indicates the bug fix state, which 00 -> nothing, 01 -> a, 02 -> b and so +- # on. +- +- message(STATUS "OPENSSL_VERSION_STR=${openssl_version_str}") +- +- string(REGEX REPLACE "^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F]).*$" +- "\\1;\\2;\\3;\\4;\\5" OPENSSL_VERSION_LIST "${openssl_version_str}") +- list(GET OPENSSL_VERSION_LIST 0 OPENSSL_VERSION_MAJOR) +- list(GET OPENSSL_VERSION_LIST 1 OPENSSL_VERSION_MINOR) +- from_hex("${OPENSSL_VERSION_MINOR}" OPENSSL_VERSION_MINOR) +- list(GET OPENSSL_VERSION_LIST 2 OPENSSL_VERSION_FIX) +- from_hex("${OPENSSL_VERSION_FIX}" OPENSSL_VERSION_FIX) +- list(GET OPENSSL_VERSION_LIST 3 OPENSSL_VERSION_PATCH) +- +- if (NOT OPENSSL_VERSION_PATCH STREQUAL "00") +- from_hex("${OPENSSL_VERSION_PATCH}" _tmp) +- # 96 is the ASCII code of 'a' minus 1 +- math(EXPR OPENSSL_VERSION_PATCH_ASCII "${_tmp} + 96") +- unset(_tmp) +- # Once anyone knows how OpenSSL would call the patch versions beyond 'z' +- # this should be updated to handle that, too. This has not happened yet +- # so it is simply ignored here for now. +- string(ASCII "${OPENSSL_VERSION_PATCH_ASCII}" OPENSSL_VERSION_PATCH_STRING) +- endif () +- +- set(OPENSSL_VERSION "${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MINOR}.${OPENSSL_VERSION_FIX}${OPENSSL_VERSION_PATCH_STRING}") +- endif () +-endif () +- +-include(FindPackageHandleStandardArgs) +- +-if (OPENSSL_VERSION) +- find_package_handle_standard_args(OpenSSL +- REQUIRED_VARS +- OPENSSL_LIBRARIES +- OPENSSL_INCLUDE_DIR +- VERSION_VAR +- OPENSSL_VERSION +- FAIL_MESSAGE +- "Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR" +- ) +-else () +- find_package_handle_standard_args(OpenSSL "Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR" +- OPENSSL_LIBRARIES +- OPENSSL_INCLUDE_DIR +- ) +-endif () +- +-mark_as_advanced(OPENSSL_INCLUDE_DIR OPENSSL_LIBRARIES) diff --git a/patches/fixes/Replace-avhttp-with-libcurl.patch b/patches/fixes/Replace-avhttp-with-libcurl.patch new file mode 100644 index 00000000..54b932c1 --- /dev/null +++ b/patches/fixes/Replace-avhttp-with-libcurl.patch @@ -0,0 +1,295 @@ +From: unknown +Date: Tue, 22 Dec 2015 15:19:00 +0100 +Subject: Replace avhttp with libcurl + +Some fixes: +1. Fixed an assumption somebody originally made in the plugin that + std::string had contiguous storage. This is not specced behavior pre + C++11 so we gamble by calling .reserve() which should give a far + better guarantee. + +2. Added copy to clipboard information for curl + +3. Removed some openssl references in compiling.md + +4. Renamed struct vars to be uppercase to match "public var" code style + policy +--- + Documentation/development/compiling.md | 12 +----------- + common/basicframe.cpp | 3 +++ + common/kicad_curl/kicad_curl.cpp | 26 ++++++++++++++++++++++++++ + common/kicad_curl/kicad_curl_easy.cpp | 26 +++++++++++++------------- + include/kicad_curl/kicad_curl.h | 7 +++++++ + include/kicad_curl/kicad_curl_easy.h | 6 +++--- + pcbnew/github/CMakeLists.txt | 2 -- + pcbnew/github/github_getliblist.cpp | 5 +++-- + pcbnew/github/github_plugin.cpp | 3 ++- + 9 files changed, 58 insertions(+), 32 deletions(-) + +diff --git a/Documentation/development/compiling.md b/Documentation/development/compiling.md +index 90cea955..6a5ac92c 100644 +--- a/Documentation/development/compiling.md ++++ b/Documentation/development/compiling.md +@@ -78,14 +78,6 @@ specific patches required to build a working Boost library. These patches can b + [patches folder][] in the KiCad source. These patches are named by the platform name they should + be applied against. + +-## OpenSSL Secure Socket Layer Library ## {#openssl} +- +-The [OpenSSL][] library is only required when the KiCad build is configured with the Github plugin +-enabled. See the [KiCad Build Configuration Options](#build_opts)` section for more information. +-Please note that KiCad will download and build version 1.0.1e of OpenSSL by default. You should +-probably use the version of OpenSSL installed on your system as it will most likely be more up to +-date and contain the latest security fixes. +- + ## GLEW OpenGL Extension Wrangler Library ## {#glew} + + The [OpenGL Extension Wrangler][GLEW] is an OpenGL helper library used by the KiCad graphics +@@ -299,7 +291,7 @@ the following commands: + mingw-w64-x86_64-boost \ + mingw-w64-x86_64-cairo \ + mingw-w64-x86_64-glew \ +- mingw-w64-x86_64-openssl \ ++ mingw-w64-x86_64-curl \ + mingw-w64-x86_64-wxPython \ + mingw-w64-x86_64-wxWidgets + cd kicad-source +@@ -311,7 +303,6 @@ the following commands: + -DCMAKE_PREFIX_PATH=/mingw64 \ + -DCMAKE_INSTALL_PREFIX=/mingw64 \ + -DDEFAULT_INSTALL_PATH=/mingw64 \ +- -DOPENSSL_ROOT_DIR=/mingw64 \ + -DKICAD_SKIP_BOOST=ON \ + -DKICAD_SCRIPTING=ON \ + -DKICAD_SCRIPTING_MODULES=ON \ +@@ -408,7 +399,6 @@ Boost patches in the KiCad source [patch folder][]. + [wxWidgets]: http://wxwidgets.org/ + [patches folder]: http://bazaar.launchpad.net/~kicad-product-committers/kicad/product/files/head:/patches/ + [Boost]: http://www.boost.org/ +-[OpenSSL]: https://www.openssl.org/ + [GLEW]: http://glew.sourceforge.net/ + [GLUT]: https://www.opengl.org/resources/libraries/glut/ + [Cairo]: http://cairographics.org/ +diff --git a/common/basicframe.cpp b/common/basicframe.cpp +index 46ddd550..815247d0 100644 +--- a/common/basicframe.cpp ++++ b/common/basicframe.cpp +@@ -28,6 +28,7 @@ + * @brief EDA_BASE_FRAME class implementation. + */ + ++#include /* Include before any wx file */ + #include + #include + #include +@@ -580,6 +581,8 @@ void EDA_BASE_FRAME::CopyVersionInfoToClipboard( wxCommandEvent& event ) + << ( BOOST_VERSION / 100 % 1000 ) << wxT( "." ) + << ( BOOST_VERSION % 100 ) << wxT( "\n" ); + ++ msg_version << KICAD_CURL::GetSimpleVersion() << wxT( "\n" ); ++ + msg_version << wxT( " USE_WX_GRAPHICS_CONTEXT=" ); + #ifdef USE_WX_GRAPHICS_CONTEXT + msg_version << wxT( "ON\n" ); +diff --git a/common/kicad_curl/kicad_curl.cpp b/common/kicad_curl/kicad_curl.cpp +index 7424eec8..0df25288 100644 +--- a/common/kicad_curl/kicad_curl.cpp ++++ b/common/kicad_curl/kicad_curl.cpp +@@ -51,4 +51,30 @@ std::string KICAD_CURL::GetVersion() + } + + ++std::string KICAD_CURL::GetSimpleVersion() ++{ ++ curl_version_info_data *info = curl_version_info(CURLVERSION_NOW); ++ ++ std::string res; ++ ++ if( info->version ) ++ { ++ res += "libcurl version: " + std::string(info->version); ++ } ++ ++ res += " ("; ++ if( info->features & CURL_VERSION_SSL ) ++ { ++ res += "with SSL - "; ++ res += std::string(info->ssl_version); ++ } ++ else ++ { ++ res += "without SSL"; ++ } ++ res += ")"; ++ ++ return res; ++} ++ + bool KICAD_CURL::m_initialized = false; +\ No newline at end of file +diff --git a/common/kicad_curl/kicad_curl_easy.cpp b/common/kicad_curl/kicad_curl_easy.cpp +index 71a410d0..4dadf043 100644 +--- a/common/kicad_curl/kicad_curl_easy.cpp ++++ b/common/kicad_curl/kicad_curl_easy.cpp +@@ -43,8 +43,8 @@ KICAD_CURL_EASY::KICAD_CURL_EASY() + THROW_IO_ERROR( "Unable to initialize CURL session" ); + } + +- m_Buffer.payload = (char*)malloc( 1 ); +- m_Buffer.size = 0; ++ m_Buffer.Payload = (char*)malloc( 1 ); ++ m_Buffer.Size = 0; + + curl_easy_setopt( m_CURL, CURLOPT_WRITEFUNCTION, write_callback ); + curl_easy_setopt( m_CURL, CURLOPT_WRITEDATA, (void *)&m_Buffer ); +@@ -53,7 +53,7 @@ KICAD_CURL_EASY::KICAD_CURL_EASY() + + KICAD_CURL_EASY::~KICAD_CURL_EASY() + { +- free(m_Buffer.payload); ++ free(m_Buffer.Payload); + curl_easy_cleanup(m_CURL); + } + +@@ -110,27 +110,27 @@ static size_t write_callback( void *contents, size_t size, size_t nmemb, void *u + struct KICAD_EASY_CURL_BUFFER *p = ( struct KICAD_EASY_CURL_BUFFER * ) userp; + + /* expand buffer */ +- p->payload = (char *) realloc( p->payload, p->size + realsize + 1 ); ++ p->Payload = (char *) realloc( p->Payload, p->Size + realsize + 1 ); + + /* check buffer */ +- if ( p->payload == NULL ) ++ if ( p->Payload == NULL ) + { + wxLogError( wxT( "Failed to expand buffer in curl_callback" ) ); + + /* free buffer */ +- free( p->payload ); ++ free( p->Payload ); + + return -1; + } + + /* copy contents to buffer */ +- memcpy( &(p->payload[p->size]), contents, realsize ); ++ memcpy( &(p->Payload[p->Size]), contents, realsize ); + + /* set new buffer size */ +- p->size += realsize; ++ p->Size += realsize; + + /* ensure null termination */ +- p->payload[p->size] = 0; ++ p->Payload[p->Size] = 0; + + /* return size */ + return realsize; +@@ -144,11 +144,11 @@ void KICAD_CURL_EASY::Perform() + curl_easy_setopt( m_CURL, CURLOPT_HTTPHEADER, m_headers ); + } + +- if( m_Buffer.size > 0 ) ++ if( m_Buffer.Size > 0 ) + { +- free( m_Buffer.payload ); +- m_Buffer.payload = (char*)malloc( 1 ); +- m_Buffer.size = 0; ++ free( m_Buffer.Payload ); ++ m_Buffer.Payload = (char*)malloc( 1 ); ++ m_Buffer.Size = 0; + } + + CURLcode res = curl_easy_perform( m_CURL ); +diff --git a/include/kicad_curl/kicad_curl.h b/include/kicad_curl/kicad_curl.h +index 3639400c..ef49f92d 100644 +--- a/include/kicad_curl/kicad_curl.h ++++ b/include/kicad_curl/kicad_curl.h +@@ -75,6 +75,13 @@ public: + */ + static std::string GetVersion(); + ++ /** ++ * Function GetSimpleVersion ++ * Reports back curl version only and SSL library support ++ * ++ * @return std::string - Generated version string ++ */ ++ static std::string GetSimpleVersion(); + private: + static bool m_initialized; + }; +diff --git a/include/kicad_curl/kicad_curl_easy.h b/include/kicad_curl/kicad_curl_easy.h +index a87c3d02..2273e489 100644 +--- a/include/kicad_curl/kicad_curl_easy.h ++++ b/include/kicad_curl/kicad_curl_easy.h +@@ -52,8 +52,8 @@ + */ + struct KICAD_EASY_CURL_BUFFER + { +- char* payload; +- size_t size; ++ char* Payload; ++ size_t Size; + }; + + +@@ -142,7 +142,7 @@ public: + * @param aArg is the argument being passed to CURL, ensure it is the right type per manual + * @return CURLcode - CURL error code, will return CURLE_OK unless a problem was encountered + */ +- template CURLcode SetOption( CURLoption aOption, T aArg ) ++ template CURLcode SetOption( CURLoption aOption, T aArg ) + { + return curl_easy_setopt( m_CURL, aOption, aArg ); + } +diff --git a/pcbnew/github/CMakeLists.txt b/pcbnew/github/CMakeLists.txt +index bb37ebf5..c6615e48 100644 +--- a/pcbnew/github/CMakeLists.txt ++++ b/pcbnew/github/CMakeLists.txt +@@ -32,8 +32,6 @@ set( GITHUB_PLUGIN_SRCS + + add_library( github_plugin STATIC ${GITHUB_PLUGIN_SRCS} ) + +-# No, you don't get github without boost and openssl. Boost_LIBRARIES now moved up +-# into CMakeLists.txt for pcbnew and cvpcb: + target_link_libraries( github_plugin + common + ) +diff --git a/pcbnew/github/github_getliblist.cpp b/pcbnew/github/github_getliblist.cpp +index baf5f7c2..6c8f8852 100644 +--- a/pcbnew/github/github_getliblist.cpp ++++ b/pcbnew/github/github_getliblist.cpp +@@ -212,7 +212,7 @@ bool GITHUB_GETLIBLIST::repoURL2listURL( const wxString& aRepoURL, + bool GITHUB_GETLIBLIST::remoteGetJSON( const std::string& aFullURLCommand, wxString* aMsgError ) + { + KICAD_CURL_EASY kcurl; +- ++ + wxLogDebug( wxT( "Attempting to download: " ) + aFullURLCommand ); + + kcurl.SetURL(aFullURLCommand); +@@ -223,7 +223,8 @@ bool GITHUB_GETLIBLIST::remoteGetJSON( const std::string& aFullURLCommand, wxStr + try + { + kcurl.Perform(); +- m_image.assign(kcurl.GetBuffer()->payload, kcurl.GetBuffer()->size); ++ m_image.reserve( kcurl.GetBuffer()->Size ); ++ m_image.assign( kcurl.GetBuffer()->Payload, kcurl.GetBuffer()->Size ); + return true; + } + catch( const IO_ERROR& ioe ) +diff --git a/pcbnew/github/github_plugin.cpp b/pcbnew/github/github_plugin.cpp +index db96ae18..321e0b76 100644 +--- a/pcbnew/github/github_plugin.cpp ++++ b/pcbnew/github/github_plugin.cpp +@@ -538,7 +538,8 @@ void GITHUB_PLUGIN::remoteGetZip( const wxString& aRepoURL ) throw( IO_ERROR ) + try + { + kcurl.Perform(); +- m_zip_image.assign(kcurl.GetBuffer()->payload, kcurl.GetBuffer()->size); ++ m_zip_image.reserve( kcurl.GetBuffer()->Size ); ++ m_zip_image.assign( kcurl.GetBuffer()->Payload, kcurl.GetBuffer()->Size ); + } + catch( const IO_ERROR& ioe ) + { diff --git a/patches/fixes/Replace-the-avhttp-library-used-by-the-github-plugin-with.patch b/patches/fixes/Replace-the-avhttp-library-used-by-the-github-plugin-with.patch new file mode 100644 index 00000000..84bdd597 --- /dev/null +++ b/patches/fixes/Replace-the-avhttp-library-used-by-the-github-plugin-with.patch @@ -0,0 +1,1061 @@ +From: Mark Roszko +Date: Mon, 21 Dec 2015 15:30:33 -0500 +Subject: Replace the avhttp library used by the github plugin with libcurl. + +--- + CMakeLists.txt | 5 + + common/CMakeLists.txt | 6 +- + common/kicad_curl/kicad_curl.cpp | 54 +++++++++++ + common/kicad_curl/kicad_curl_easy.cpp | 163 +++++++++++++++++++++++++++++++++ + common/pgm_base.cpp | 9 ++ + include/kicad_curl/kicad_curl.h | 82 +++++++++++++++++ + include/kicad_curl/kicad_curl_easy.h | 166 ++++++++++++++++++++++++++++++++++ + pcbnew/github/CMakeLists.txt | 39 +------- + pcbnew/github/github_getliblist.cpp | 68 +++++++------- + pcbnew/github/github_getliblist.h | 4 +- + pcbnew/github/github_plugin.cpp | 151 ++++++------------------------- + pcbnew/github/github_plugin.h | 6 +- + 12 files changed, 560 insertions(+), 193 deletions(-) + create mode 100644 common/kicad_curl/kicad_curl.cpp + create mode 100644 common/kicad_curl/kicad_curl_easy.cpp + create mode 100644 include/kicad_curl/kicad_curl.h + create mode 100644 include/kicad_curl/kicad_curl_easy.h + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6eea373a..858ea58a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -569,6 +569,11 @@ if( NOT GLEW_FOUND ) + check_find_package_result( GLEW_FOUND "GLEW" ) + endif() + ++##################### ++# Find CURL library # ++##################### ++find_package( CURL REQUIRED ) ++ + ###################### + # Find Cairo library # + ###################### +diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt +index c9fbd29b..c2bd2cb2 100644 +--- a/common/CMakeLists.txt ++++ b/common/CMakeLists.txt +@@ -4,6 +4,7 @@ include_directories( + ./dialog_about + ${CAIRO_INCLUDE_DIR} + ${GLEW_INCLUDE_DIR} ++ ${CURL_INCLUDE_DIRS} + ../3d-viewer + ../pcbnew + ../polygon +@@ -257,6 +258,9 @@ endif() + + set( COMMON_SRCS + ${COMMON_SRCS} ++ kicad_curl/kicad_curl.cpp ++ kicad_curl/kicad_curl_easy.cpp ++ + view/view.cpp + view/view_item.cpp + view/view_group.cpp +@@ -282,7 +286,7 @@ set( COMMON_SRCS + add_library( common STATIC ${COMMON_SRCS} ) + add_dependencies( common lib-dependencies ) + add_dependencies( common version_header ) +-target_link_libraries( common ${Boost_LIBRARIES} ) ++target_link_libraries( common ${Boost_LIBRARIES} ${CURL_LIBRARIES} ) + + + set( PCB_COMMON_SRCS +diff --git a/common/kicad_curl/kicad_curl.cpp b/common/kicad_curl/kicad_curl.cpp +new file mode 100644 +index 00000000..7424eec8 +--- /dev/null ++++ b/common/kicad_curl/kicad_curl.cpp +@@ -0,0 +1,54 @@ ++/* ++ * This program source code file is part of KiCad, a free EDA CAD application. ++ * ++ * Copyright (C) 2015 Mark Roszko ++ * Copyright (C) 2015 KiCad Developers, see CHANGELOG.TXT for contributors. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 3 ++ * of the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, you may find one here: ++ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html ++ * or you may search the http://www.gnu.org website for the version 2 license, ++ * or you may write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#include ++ ++bool KICAD_CURL::Init() ++{ ++ if ( curl_global_init( CURL_GLOBAL_ALL ) != CURLE_OK ) ++ { ++ return false; ++ } ++ else ++ { ++ m_initialized = true; ++ return true; ++ } ++} ++ ++ ++void KICAD_CURL::Cleanup() ++{ ++ if( m_initialized ) ++ curl_global_cleanup(); ++} ++ ++ ++std::string KICAD_CURL::GetVersion() ++{ ++ return std::string( curl_version() ); ++} ++ ++ ++bool KICAD_CURL::m_initialized = false; +\ No newline at end of file +diff --git a/common/kicad_curl/kicad_curl_easy.cpp b/common/kicad_curl/kicad_curl_easy.cpp +new file mode 100644 +index 00000000..71a410d0 +--- /dev/null ++++ b/common/kicad_curl/kicad_curl_easy.cpp +@@ -0,0 +1,163 @@ ++/* ++ * This program source code file is part of KiCad, a free EDA CAD application. ++ * ++ * Copyright (C) 2015 Mark Roszko ++ * Copyright (C) 2015 KiCad Developers, see CHANGELOG.TXT for contributors. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 3 ++ * of the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, you may find one here: ++ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html ++ * or you may search the http://www.gnu.org website for the version 2 license, ++ * or you may write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++static size_t write_callback (void *contents, size_t size, size_t nmemb, void *userp); ++ ++ ++KICAD_CURL_EASY::KICAD_CURL_EASY() ++ : m_headers( NULL ) ++{ ++ m_CURL = curl_easy_init(); ++ ++ if( m_CURL == NULL ) ++ { ++ THROW_IO_ERROR( "Unable to initialize CURL session" ); ++ } ++ ++ m_Buffer.payload = (char*)malloc( 1 ); ++ m_Buffer.size = 0; ++ ++ curl_easy_setopt( m_CURL, CURLOPT_WRITEFUNCTION, write_callback ); ++ curl_easy_setopt( m_CURL, CURLOPT_WRITEDATA, (void *)&m_Buffer ); ++} ++ ++ ++KICAD_CURL_EASY::~KICAD_CURL_EASY() ++{ ++ free(m_Buffer.payload); ++ curl_easy_cleanup(m_CURL); ++} ++ ++ ++bool KICAD_CURL_EASY::SetURL( const std::string& aURL ) ++{ ++ if( SetOption( CURLOPT_URL, aURL.c_str() ) == CURLE_OK ) ++ { ++ return true; ++ } ++ return false; ++} ++ ++ ++bool KICAD_CURL_EASY::SetUserAgent( const std::string& aAgent ) ++{ ++ if( SetOption( CURLOPT_USERAGENT, aAgent.c_str() ) == CURLE_OK ) ++ { ++ return true; ++ } ++ return false; ++} ++ ++ ++bool KICAD_CURL_EASY::SetFollowRedirects( bool aFollow ) ++{ ++ if( SetOption( CURLOPT_FOLLOWLOCATION , (aFollow ? 1 : 0) ) == CURLE_OK ) ++ { ++ return true; ++ } ++ return false; ++} ++ ++ ++void KICAD_CURL_EASY::SetHeader( const std::string& aName, const std::string& aValue ) ++{ ++ std::string header = aName + ':' + aValue; ++ m_headers = curl_slist_append( m_headers, header.c_str() ); ++} ++ ++ ++std::string KICAD_CURL_EASY::GetErrorText(CURLcode code) ++{ ++ return curl_easy_strerror(code); ++} ++ ++ ++static size_t write_callback( void *contents, size_t size, size_t nmemb, void *userp ) ++{ ++ /* calculate buffer size */ ++ size_t realsize = size * nmemb; ++ ++ /* cast pointer to fetch struct */ ++ struct KICAD_EASY_CURL_BUFFER *p = ( struct KICAD_EASY_CURL_BUFFER * ) userp; ++ ++ /* expand buffer */ ++ p->payload = (char *) realloc( p->payload, p->size + realsize + 1 ); ++ ++ /* check buffer */ ++ if ( p->payload == NULL ) ++ { ++ wxLogError( wxT( "Failed to expand buffer in curl_callback" ) ); ++ ++ /* free buffer */ ++ free( p->payload ); ++ ++ return -1; ++ } ++ ++ /* copy contents to buffer */ ++ memcpy( &(p->payload[p->size]), contents, realsize ); ++ ++ /* set new buffer size */ ++ p->size += realsize; ++ ++ /* ensure null termination */ ++ p->payload[p->size] = 0; ++ ++ /* return size */ ++ return realsize; ++} ++ ++ ++void KICAD_CURL_EASY::Perform() ++{ ++ if( m_headers != NULL ) ++ { ++ curl_easy_setopt( m_CURL, CURLOPT_HTTPHEADER, m_headers ); ++ } ++ ++ if( m_Buffer.size > 0 ) ++ { ++ free( m_Buffer.payload ); ++ m_Buffer.payload = (char*)malloc( 1 ); ++ m_Buffer.size = 0; ++ } ++ ++ CURLcode res = curl_easy_perform( m_CURL ); ++ if( res != CURLE_OK ) ++ { ++ wxString msg = wxString::Format( ++ _( "CURL Request Failed: %s" ), ++ GetErrorText( res ) ); ++ ++ THROW_IO_ERROR( msg ); ++ } ++} +\ No newline at end of file +diff --git a/common/pgm_base.cpp b/common/pgm_base.cpp +index e4894380..0fde3d66 100644 +--- a/common/pgm_base.cpp ++++ b/common/pgm_base.cpp +@@ -30,6 +30,7 @@ + * (locale handling) + */ + ++#include /* Include before any wx file */ + #include + #include + #include +@@ -282,6 +283,7 @@ PGM_BASE::PGM_BASE() + PGM_BASE::~PGM_BASE() + { + destroy(); ++ KICAD_CURL::Cleanup(); + } + + +@@ -510,6 +512,13 @@ bool PGM_BASE::initPgm() + wxSystemOptions::SetOption( wxOSX_FILEDIALOG_ALWAYS_SHOW_TYPES, 1 ); + #endif + ++ // Initialize CURL ++ wxLogDebug( wxT( "Using %s" ), KICAD_CURL::GetVersion() ); ++ if( !KICAD_CURL::Init() ) ++ { ++ wxLogDebug( wxT( "Error initializing libcurl" ) ); ++ } ++ + return true; + } + +diff --git a/include/kicad_curl/kicad_curl.h b/include/kicad_curl/kicad_curl.h +new file mode 100644 +index 00000000..3639400c +--- /dev/null ++++ b/include/kicad_curl/kicad_curl.h +@@ -0,0 +1,82 @@ ++/* ++ * This program source code file is part of KiCad, a free EDA CAD application. ++ * ++ * Copyright (C) 2015 Mark Roszko ++ * Copyright (C) 2015 KiCad Developers, see CHANGELOG.TXT for contributors. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 3 ++ * of the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, you may find one here: ++ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html ++ * or you may search the http://www.gnu.org website for the version 2 license, ++ * or you may write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++#ifndef KICAD_CURL_H_ ++#define KICAD_CURL_H_ ++ ++/* ++ * KICAD_CURL.h must be included before wxWidgets because on Windows, ++ * wxWidgets ends up including windows.h before winsocks2.h inside curl ++ * this causes build warnings ++ * Because we are before wx, we must explicitly define we are building with unicode. ++ * wxWidgets defaults to supporting unicode now, so this should be safe. ++ */ ++#if defined(WIN32) ++ #ifndef UNICODE ++ # define UNICODE ++ #endif ++ ++ #ifndef _UNICODE ++ # define _UNICODE ++ #endif ++#endif ++ ++#include ++#include ++ ++/** ++ * Class KICAD_CURL ++ * simple wrapper class to call curl_global_init and curl_global_cleanup for KiCad. ++ */ ++class KICAD_CURL ++{ ++public: ++ /** ++ * Function Init ++ * calls curl_global_init for the application. It must be used only once ++ * and before any curl functions that perform requests. ++ * ++ * @return bool - True if successful, false if CURL returned an error ++ */ ++ static bool Init(); ++ ++ /** ++ * Function Cleanup ++ * calls curl_global_cleanup for the application. It must be used only after ++ * curl_global_init was called. ++ */ ++ static void Cleanup(); ++ ++ /** ++ * Function GetVersion ++ * wrapper for curl_version(). Reports back a short string of loaded libraries. ++ * ++ * @return std::string - String reported by libcurl ++ */ ++ static std::string GetVersion(); ++ ++private: ++ static bool m_initialized; ++}; ++ ++#endif // KICAD_CURL_H_ +\ No newline at end of file +diff --git a/include/kicad_curl/kicad_curl_easy.h b/include/kicad_curl/kicad_curl_easy.h +new file mode 100644 +index 00000000..a87c3d02 +--- /dev/null ++++ b/include/kicad_curl/kicad_curl_easy.h +@@ -0,0 +1,166 @@ ++/* ++ * This program source code file is part of KiCad, a free EDA CAD application. ++ * ++ * Copyright (C) 2015 Mark Roszko ++ * Copyright (C) 2015 KiCad Developers, see CHANGELOG.TXT for contributors. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 3 ++ * of the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, you may find one here: ++ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html ++ * or you may search the http://www.gnu.org website for the version 2 license, ++ * or you may write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++#ifndef KICAD_CURL_EASY_H_ ++#define KICAD_CURL_EASY_H_ ++ ++/* ++ * KICAD_CURL_EASY.h must included before wxWidgets because on Windows, ++ * wxWidgets ends up including windows.h before winsocks2.h inside curl ++ * this causes build warnings ++ * Because we are before wx, we must explicitly define we are building with unicode ++ * wxWidgets defaults to supporting unicode now, so this should be safe. ++ */ ++#if defined(WIN32) ++ #ifndef UNICODE ++ # define UNICODE ++ #endif ++ ++ #ifndef _UNICODE ++ # define _UNICODE ++ #endif ++#endif ++ ++ ++#include ++#include ++ ++/** ++ * Struct KICAD_EASY_CURL_BUFFER ++ * is a struct used for storing the libcurl received data in its callbacks. ++ * Do not use directly, KICAD_CURL_EASY uses it. ++ */ ++struct KICAD_EASY_CURL_BUFFER ++{ ++ char* payload; ++ size_t size; ++}; ++ ++ ++/** ++ * Class KICAD_CURL_EASY ++ * wrapper interface around the curl_easy API ++ * ++ * Handling of using the curl_easy API to make a request and save the response to ++ * a memory buffer ++ * ++ * Here is a small example usage: ++ * @code ++ * KICAD_CURL_EASY curl; ++ * curl.SetURL("http://github.com"); ++ * curl.SetUserAgent("KiCad-EDA"); ++ * curl.SetHeader("Accept", "application/json"); ++ * curl.Perform(); ++ * @endcode ++ */ ++class KICAD_CURL_EASY ++{ ++public: ++ KICAD_CURL_EASY(); ++ ~KICAD_CURL_EASY(); ++ ++ /** ++ * Function perform ++ * equivalent to curl_easy_perform. Executes the request ++ * that was previously setup. ++ * ++ * @throw IO_ERROR, if there is a CURL request error ++ */ ++ void Perform(); ++ ++ /** ++ * Function SetHeader ++ * sets an arbitrary header for the HTTP(s) request. ++ * ++ * @param aName is the left hand side of the header, i.e. Accept without the colon ++ * @param aValue is the right hand side of the header, i.e. application/json ++ */ ++ void SetHeader( const std::string& aName, const std::string& aValue ); ++ ++ /** ++ * Function SetUserAgent ++ * sets the request user agent ++ * ++ * @param aAgent is the string to set for the user agent ++ * @return bool - True if successful, false if not ++ */ ++ bool SetUserAgent( const std::string& aAgent ); ++ ++ /** ++ * Function SetURL ++ * sets the request URL ++ * ++ * @param aURL is the URL ++ * @return bool - True if successful, false if not ++ */ ++ bool SetURL( const std::string& aURL ); ++ ++ /** ++ * Function SetFollowRedirects ++ * enables the following of HTTP(s) and other redirects, by default curl ++ * does not follow redirects. ++ * ++ * @param aFollow is a boolean where true will enable following redirects ++ * @return bool - True if successful, false if not ++ */ ++ bool SetFollowRedirects( bool aFollow ); ++ ++ /** ++ * Function GetErrorText ++ * fetches CURL's "friendly" error string for a given error code ++ * ++ * @param aCode is CURL error code ++ * @return std::string - the corresponding error string for the given code ++ */ ++ std::string GetErrorText( CURLcode aCode ); ++ ++ /** ++ * Function SetOption ++ * sets a curl option, only supports single parameter curl options ++ * ++ * @param aOption is CURL option, see CURL manual for options ++ * @param aArg is the argument being passed to CURL, ensure it is the right type per manual ++ * @return CURLcode - CURL error code, will return CURLE_OK unless a problem was encountered ++ */ ++ template CURLcode SetOption( CURLoption aOption, T aArg ) ++ { ++ return curl_easy_setopt( m_CURL, aOption, aArg ); ++ } ++ ++ /** ++ * Function GetBuffer ++ * returns a const pointer to the data buffer ++ * ++ * @return KICAD_EASY_CURL_BUFFER* - pointer to buffer ++ */ ++ const KICAD_EASY_CURL_BUFFER* GetBuffer() ++ { ++ return &m_Buffer; ++ } ++private: ++ CURL *m_CURL; ++ struct curl_slist *m_headers; ++ struct KICAD_EASY_CURL_BUFFER m_Buffer; ++}; ++ ++#endif // KICAD_CURL_EASY_H_ +\ No newline at end of file +diff --git a/pcbnew/github/CMakeLists.txt b/pcbnew/github/CMakeLists.txt +index d630c69a..bb37ebf5 100644 +--- a/pcbnew/github/CMakeLists.txt ++++ b/pcbnew/github/CMakeLists.txt +@@ -20,38 +20,14 @@ + # or you may write to the Free Software Foundation, Inc., + # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + +- +- +-# Download avhttp and install the headers, not actually compiled +-################################################# +-include( download_avhttp ) +- +-if( MINGW AND NOT OPENSSL_ROOT_DIR ) +- # download, compile and install to scratch dir a recent OPENSSL library and headers +- include( download_openssl ) +-else() +- find_package( OpenSSL REQUIRED ) +- #message( STATUS "OPENSSL_FOUND:${OPENSSL_FOUND} OPENSSL_LIBRARIES:${OPENSSL_LIBRARIES}" ) +- +- # FindOpenSSL.cmake does not set this var into cache, so is not globally visible, +- # do it here incase some other link image needs these libraries +- set( OPENSSL_LIBRARIES "${OPENSSL_LIBRARIES}" CACHE FILEPATH "OpenSSL link libraries" ) +- set( OPENSSL_INCLUDE_DIR "${OPENSSL_INCLUDE_DIR}" CACHE FILEPATH "OpenSSL include dir" ) +-endif() +- +- + # These are additions to any inherited from pcbnew dir: +-include_directories( . ${OPENSSL_INCLUDE_DIR} ${AVHTTP_INCLUDE_DIR} ) ++include_directories( . ) + + # Tell AVHTTP we have SSL. +-add_definitions( -DAVHTTP_ENABLE_OPENSSL ) +- +-# tone down the compiler warnings for avhttp header library: +-set( CMAKE_CXX_FLAGS +- "${CMAKE_CXX_FLAGS} -Wno-sign-compare -Wno-reorder -Wno-unused-variable -Wno-unused-function -Wno-strict-aliasing" ) +- + set( GITHUB_PLUGIN_SRCS +- github_plugin.cpp github_getliblist.cpp html_link_parser.cpp ++ github_plugin.cpp ++ github_getliblist.cpp ++ html_link_parser.cpp + ) + + add_library( github_plugin STATIC ${GITHUB_PLUGIN_SRCS} ) +@@ -59,7 +35,7 @@ add_library( github_plugin STATIC ${GITHUB_PLUGIN_SRCS} ) + # No, you don't get github without boost and openssl. Boost_LIBRARIES now moved up + # into CMakeLists.txt for pcbnew and cvpcb: + target_link_libraries( github_plugin +- ${OPENSSL_LIBRARIES} ++ common + ) + + if( MINGW ) +@@ -70,9 +46,4 @@ if( MINGW ) + endif() + + add_dependencies( github_plugin boost ) +-add_dependencies( github_plugin avhttp ) +- +-if( MINGW AND NOT OPENSSL_ROOT_DIR ) +- add_dependencies( github_plugin openssl ) +-endif() + +diff --git a/pcbnew/github/github_getliblist.cpp b/pcbnew/github/github_getliblist.cpp +index 00fcaca2..baf5f7c2 100644 +--- a/pcbnew/github/github_getliblist.cpp ++++ b/pcbnew/github/github_getliblist.cpp +@@ -41,35 +41,7 @@ + * JP Charras. + */ + +- +-#if 0 +-/* +- * FIX ME +- * I do not include avhttp.hpp here, because it is already included in +- * github_plugin.cpp +- * and if it is also included in this file, the link fails (double definiton of modules) +- * therefore, the GITHUB_GETLIBLIST method which uses avhttp to download dats from gitub +- * is in github_plugin.cpp +- */ +- +-#ifndef WIN32_LEAN_AND_MEAN +-// when WIN32_LEAN_AND_MEAN is defined, some useless includes in +-// are skipped, and this avoid some compil issues +-#define WIN32_LEAN_AND_MEAN +-#endif +- +-#ifdef WIN32 +-// defines needed by avhttp +-// Minimal Windows version is XP: Google for _WIN32_WINNT +- #define _WIN32_WINNT 0x0501 +- #define WINVER 0x0501 +-#endif +- +-#include +-#include +- +-#endif +- ++#include /* Include before any wx file */ + #include + + #include +@@ -97,7 +69,7 @@ bool GITHUB_GETLIBLIST::Get3DshapesLibsList( wxArrayString* aList, + wxString errorMsg; + + fullURLCommand = repoURL.utf8_str(); +- bool success = remote_get_json( &fullURLCommand, &errorMsg ); ++ bool success = remoteGetJSON( fullURLCommand, &errorMsg ); + + if( !success ) + { +@@ -147,7 +119,7 @@ bool GITHUB_GETLIBLIST::GetFootprintLibraryList( wxArrayString& aList ) + + while( 1 ) + { +- bool success = remote_get_json( &fullURLCommand, &errorMsg ); ++ bool success = remoteGetJSON( fullURLCommand, &errorMsg ); + + if( !success ) + { +@@ -235,3 +207,37 @@ bool GITHUB_GETLIBLIST::repoURL2listURL( const wxString& aRepoURL, + + return false; + } ++ ++ ++bool GITHUB_GETLIBLIST::remoteGetJSON( const std::string& aFullURLCommand, wxString* aMsgError ) ++{ ++ KICAD_CURL_EASY kcurl; ++ ++ wxLogDebug( wxT( "Attempting to download: " ) + aFullURLCommand ); ++ ++ kcurl.SetURL(aFullURLCommand); ++ kcurl.SetUserAgent("KiCad-EDA"); ++ kcurl.SetHeader("Accept", m_option_string); ++ kcurl.SetFollowRedirects(true); ++ ++ try ++ { ++ kcurl.Perform(); ++ m_image.assign(kcurl.GetBuffer()->payload, kcurl.GetBuffer()->size); ++ return true; ++ } ++ catch( const IO_ERROR& ioe ) ++ { ++ if( aMsgError ) ++ { ++ UTF8 fmt( _( "Error fetching JSON data from URL '%s'.\nReason: '%s'" ) ); ++ ++ std::string msg = StrPrintf( fmt.c_str(), ++ aFullURLCommand.c_str(), ++ TO_UTF8( ioe.errorText ) ); ++ ++ *aMsgError = FROM_UTF8( msg.c_str() ); ++ } ++ return false; ++ } ++} +\ No newline at end of file +diff --git a/pcbnew/github/github_getliblist.h b/pcbnew/github/github_getliblist.h +index 6fd05980..0d38b8ae 100644 +--- a/pcbnew/github/github_getliblist.h ++++ b/pcbnew/github/github_getliblist.h +@@ -103,7 +103,7 @@ protected: + int aItemCountMax, int aPage = 1 ); + + /** +- * Function remote_get_json ++ * Function remoteGetJSON + * Download a json text from a github repo. The text image + * is received into the m_input_stream. + * @param aFullURLCommand the full command, i.e. the url with options like +@@ -111,7 +111,7 @@ protected: + * @param aMsgError a pointer to a wxString which can store an error message + * @return true if OK, false if error (which an error message in *aMsgError + */ +- bool remote_get_json( std::string* aFullURLCommand, wxString* aMsgError ); ++ bool remoteGetJSON( const std::string& aFullURLCommand, wxString* aMsgError ); + + wxString m_github_path; ///< Something like https://api.github.com/orgs/KiCad + std::string m_image; ///< image of the downloaded data in its entirety. +diff --git a/pcbnew/github/github_plugin.cpp b/pcbnew/github/github_plugin.cpp +index 963a81c4..db96ae18 100644 +--- a/pcbnew/github/github_plugin.cpp ++++ b/pcbnew/github/github_plugin.cpp +@@ -38,8 +38,7 @@ I have lost my enthusiasm for local caching until a faster time stamp retrieval + mechanism can be found, or github gets more servers. But note that the occasionally + slow response is the exception rather than the norm. Normally the response is + down around a 1/3 of a second. The information we would use is in the header +-named "Last-Modified" as seen below. This would need parsing, but avhttp may +-offer some help there, if not, then boost async probably does. ++named "Last-Modified" as seen below. + + + HTTP/1.1 200 OK +@@ -64,20 +63,7 @@ X-GitHub-Request-Id: 411087C2:659E:50FD6E6:52E67F66 + Vary: Accept-Encoding + + */ +- +- +-#ifndef WIN32_LEAN_AND_MEAN +-// when WIN32_LEAN_AND_MEAN is defined, some useless includes in +-// are skipped, and this avoid some compil issues +-#define WIN32_LEAN_AND_MEAN +-#endif +- +-#ifdef WIN32 +- // defines needed by avhttp +- // Minimal Windows version is XP: Google for _WIN32_WINNT +- #define _WIN32_WINNT 0x0501 +- #define WINVER 0x0501 +-#endif ++#include /* Include before any wx file */ + + #include + #include +@@ -88,10 +74,6 @@ Vary: Accept-Encoding + #include + + #include +-// Under Windows Mingw/msys, avhttp.hpp should be included after fctsys.h +-// in fact after wx/wx.h, included by fctsys.h, +-// to avoid issues (perhaps due to incompatible defines) +-#include // chinese SSL magic + + #include + #include +@@ -103,6 +85,7 @@ Vary: Accept-Encoding + #include // ExpandSubstitutions() + #include + ++ + using namespace std; + + +@@ -431,7 +414,7 @@ void GITHUB_PLUGIN::cacheLib( const wxString& aLibraryPath, const PROPERTIES* aP + m_gh_cache = new GH_CACHE(); + + // INIT_LOGGER( "/tmp", "test.log" ); +- remote_get_zip( aLibraryPath ); ++ remoteGetZip( aLibraryPath ); + // UNINIT_LOGGER(); + + m_lib_path = aLibraryPath; +@@ -460,7 +443,7 @@ void GITHUB_PLUGIN::cacheLib( const wxString& aLibraryPath, const PROPERTIES* aP + } + + +-bool GITHUB_PLUGIN::repoURL_zipURL( const wxString& aRepoURL, string* aZipURL ) ++bool GITHUB_PLUGIN::repoURL_zipURL( const wxString& aRepoURL, std::string& aZipURL ) + { + // e.g. "https://github.com/liftoff-sr/pretty_footprints" + //D(printf("aRepoURL:%s\n", TO_UTF8( aRepoURL ) );) +@@ -470,12 +453,12 @@ bool GITHUB_PLUGIN::repoURL_zipURL( const wxString& aRepoURL, string* aZipURL ) + if( repo.HasServer() && repo.HasPath() ) + { + // scheme might be "http" or if truly github.com then "https". +- wxString zip_url = repo.GetScheme(); +- +- zip_url += "://"; ++ wxString zip_url; + + if( repo.GetServer() == "github.com" ) + { ++ //codeload.github.com only supports https ++ zip_url = "https://"; + #if 0 // A proper code path would be this one, but it is not the fastest. + zip_url += repo.GetServer(); + zip_url += repo.GetPath(); // path comes with a leading '/' +@@ -488,8 +471,6 @@ bool GITHUB_PLUGIN::repoURL_zipURL( const wxString& aRepoURL, string* aZipURL ) + + // In order to bypass this redirect, saving time, we use the + // redirected URL on first attempt to save one HTTP GET hit. +- // avhttp would do the redirect behind the scenes normally, but that would +- // be slower than doing this bypass. + zip_url += "codeload.github.com"; + zip_url += repo.GetPath(); // path comes with a leading '/' + zip_url += "/zip/master"; +@@ -498,9 +479,11 @@ bool GITHUB_PLUGIN::repoURL_zipURL( const wxString& aRepoURL, string* aZipURL ) + + else + { ++ zip_url = repo.GetScheme(); ++ zip_url += "://"; ++ + // This is the generic code path for any server which can serve + // up zip files. The schemes tested include: http and https. +- // (I don't know what the avhttp library supports beyond that.) + + // zip_url goal: "://[:]/" + +@@ -526,126 +509,50 @@ bool GITHUB_PLUGIN::repoURL_zipURL( const wxString& aRepoURL, string* aZipURL ) + // this code path with the needs of one particular inflexible server. + } + +- *aZipURL = zip_url.utf8_str(); ++ aZipURL = zip_url.utf8_str(); + return true; + } + return false; + } + + +-void GITHUB_PLUGIN::remote_get_zip( const wxString& aRepoURL ) throw( IO_ERROR ) ++void GITHUB_PLUGIN::remoteGetZip( const wxString& aRepoURL ) throw( IO_ERROR ) + { +- string zip_url; ++ std::string zip_url; + +- if( !repoURL_zipURL( aRepoURL, &zip_url ) ) ++ if( !repoURL_zipURL( aRepoURL, zip_url ) ) + { + wxString msg = wxString::Format( _( "Unable to parse URL:\n'%s'" ), GetChars( aRepoURL ) ); + THROW_IO_ERROR( msg ); + } + +- boost::asio::io_service io; +- avhttp::http_stream h( io ); +- avhttp::request_opts options; ++ wxLogDebug( wxT( "Attempting to download: " ) + zip_url ); + +- options.insert( "Accept", "application/zip" ); +- options.insert( "User-Agent", "http://kicad-pcb.org" ); // THAT WOULD BE ME. +- h.request_options( options ); ++ KICAD_CURL_EASY kcurl; ++ ++ kcurl.SetURL(zip_url.c_str()); ++ kcurl.SetUserAgent("KiCad-EDA"); ++ kcurl.SetHeader("Accept", "application/zip"); ++ kcurl.SetFollowRedirects(true); + + try + { +- ostringstream os; +- +- h.open( zip_url ); // only one file, therefore do it synchronously. +- os << &h; +- +- // Keep zip file byte image in RAM. That plus the MODULE_MAP will constitute +- // the cache. We don't cache the MODULEs per se, we parse those as needed from +- // this zip file image. +- m_zip_image = os.str(); +- +- // 4 lines, using SSL, top that. ++ kcurl.Perform(); ++ m_zip_image.assign(kcurl.GetBuffer()->payload, kcurl.GetBuffer()->size); + } +- catch( const boost::system::system_error& e ) ++ catch( const IO_ERROR& ioe ) + { +- // https "GET" has faild, report this to API caller. +- static const char errorcmd[] = "http GET command failed"; // Do not translate this message +- + UTF8 fmt( _( "%s\nCannot get/download Zip archive: '%s'\nfor library path: '%s'.\nReason: '%s'" ) ); + +- string msg = StrPrintf( fmt.c_str(), +- errorcmd, +- // Report both secret zip_url and Lib Path, to user. The secret +- // zip_url may go bad at some point in future if github changes +- // their server architecture. Then fix repoURL_zipURL() to reflect +- // new architecture. +- zip_url.c_str(), TO_UTF8( aRepoURL ), +- e.what() ); +- +- THROW_IO_ERROR( msg ); +- } +- catch( const exception& exc ) +- { +- UTF8 error( _( "Exception '%s' in avhttp while open()-ing URI:'%s'" ) ); ++ std::string msg = StrPrintf( fmt.c_str(), ++ zip_url.c_str(), ++ TO_UTF8( aRepoURL ), ++ TO_UTF8( ioe.errorText ) ); + +- string msg = StrPrintf( error.c_str(), exc.what(), zip_url.c_str() ); + THROW_IO_ERROR( msg ); + } + } + +- +-// This GITHUB_GETLIBLIST method should not be here, but in github_getliblist.cpp ! +-// However it is here just because we need to include to compile it. +-// and when we include avhttp in two .cpp files, the link fails because it detects duplicate +-// avhttp functions. +-// So until it is fixed, this code is here. +-bool GITHUB_GETLIBLIST::remote_get_json( std::string* aFullURLCommand, wxString* aMsgError ) +-{ +- boost::asio::io_service io; +- avhttp::http_stream h( io ); +- avhttp::request_opts options; +- +- +- options.insert( "Accept", m_option_string ); +- options.insert( "User-Agent", "http://kicad-pcb.org" ); // THAT WOULD BE ME. +- h.request_options( options ); +- +- try +- { +- std::ostringstream os; +- +- h.open( *aFullURLCommand ); // only one file, therefore do it synchronously. +- os << &h; +- +- // Keep downloaded text file image in RAM. +- m_image = os.str(); +- +- // 4 lines, using SSL, top that. +- } +- catch( boost::system::system_error& e ) +- { +- // https "GET" has faild, report this to API caller. +- static const char errorcmd[] = "https GET command failed"; // Do not translate this message +- +- UTF8 fmt( _( "%s\nCannot get/download data from: '%s'\nReason: '%s'" ) ); +- +- std::string msg = StrPrintf( fmt.c_str(), +- errorcmd, +- // Report secret list_url to user. The secret +- // list_url may go bad at some point in future if github changes +- // their server architecture. Then fix repoURL_zipURL() to reflect +- // new architecture. +- aFullURLCommand->c_str(), e.what() ); +- +- if( aMsgError ) +- { +- *aMsgError = FROM_UTF8( msg.c_str() ); +- return false; +- } +- } +- +- return true; +-} +- + #if 0 && defined(STANDALONE) + + int main( int argc, char** argv ) +diff --git a/pcbnew/github/github_plugin.h b/pcbnew/github/github_plugin.h +index 4bb8248f..f930821e 100644 +--- a/pcbnew/github/github_plugin.h ++++ b/pcbnew/github/github_plugin.h +@@ -210,14 +210,14 @@ protected: + * @param aZipURL is where to put the zip file URL. + * @return bool - true if @a aRepoULR was parseable, else false + */ +- static bool repoURL_zipURL( const wxString& aRepoURL, std::string* aZipURL ); ++ static bool repoURL_zipURL( const wxString& aRepoURL, std::string& aZipURL ); + + /** +- * Function remote_get_zip ++ * Function remoteGetZip + * fetches a zip file image from a github repo synchronously. The byte image + * is received into the m_input_stream. + */ +- void remote_get_zip( const wxString& aRepoURL ) throw( IO_ERROR ); ++ void remoteGetZip( const wxString& aRepoURL ) throw( IO_ERROR ); + + wxString m_lib_path; ///< from aLibraryPath, something like https://github.com/liftoff-sr/pretty_footprints + std::string m_zip_image; ///< byte image of the zip file in its entirety. diff --git a/patches/porting-kfreebsd-hurd/Fix-FTBFS-on-kFreeBSD-and-Hurd.patch b/patches/porting-kfreebsd-hurd/Fix-FTBFS-on-kFreeBSD-and-Hurd.patch new file mode 100644 index 00000000..52969f82 --- /dev/null +++ b/patches/porting-kfreebsd-hurd/Fix-FTBFS-on-kFreeBSD-and-Hurd.patch @@ -0,0 +1,23 @@ +From: Georges Khaznadar +Date: Sat, 3 Sep 2016 17:57:10 +0200 +Subject: Fix FTBFS on kFreeBSD and Hurd + +The modification should allow the package to be built on new platforms: +hurd and *freebsd. +--- + include/kiway.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/kiway.h b/include/kiway.h +index 3ec5af8c..c8c919ee 100644 +--- a/include/kiway.h ++++ b/include/kiway.h +@@ -114,7 +114,7 @@ as such! As such, it is OK to use UTF8 characters: + // be mangled. + #define KIFACE_INSTANCE_NAME_AND_VERSION "KIFACE_1" + +-#if defined(__linux__) || defined(__FreeBSD__) ++#if defined(__linux__) || defined(__GLIBC__) || defined(__FreeBSD__) || defined(__GNU__) + #define LIB_ENV_VAR wxT( "LD_LIBRARY_PATH" ) + #elif defined(__WXMAC__) + #define LIB_ENV_VAR wxT( "DYLD_LIBRARY_PATH" ) diff --git a/patches/reproducibility/add-field-revdate-to-asciidoc-files-of-documentation.patch b/patches/reproducibility/add-field-revdate-to-asciidoc-files-of-documentation.patch new file mode 100644 index 00000000..7ccc27a2 --- /dev/null +++ b/patches/reproducibility/add-field-revdate-to-asciidoc-files-of-documentation.patch @@ -0,0 +1,143 @@ +From: Carsten Schoenert +Date: Thu, 13 Oct 2016 21:08:18 +0200 +Subject: add field 'revdate' to asciidoc files of documentation + +For reproducibility we need to set up a date that's not depending on the +current time and timezone. We add a extra asciidoc control field +'revdate' and expand the variable behind that while building the package +with the date from the changelog file. +--- + doc/src/cvpcb/cvpcb.adoc | 1 + + doc/src/doc_writing_style_policy/doc_writing_style_policy.adoc | 1 + + doc/src/eeschema/eeschema.adoc | 1 + + doc/src/gerbview/gerbview.adoc | 1 + + doc/src/getting_started_in_kicad/getting_started_in_kicad.adoc | 1 + + doc/src/gui_translation_howto/gui_translation_howto.adoc | 1 + + doc/src/idf_exporter/idf_exporter.adoc | 1 + + doc/src/kicad/kicad.adoc | 1 + + doc/src/pcbnew/pcbnew.adoc | 1 + + doc/src/pl_editor/pl_editor.adoc | 1 + + doc/src/plugins/plugins.adoc | 1 + + 11 files changed, 11 insertions(+) + +diff --git a/doc/src/cvpcb/cvpcb.adoc b/doc/src/cvpcb/cvpcb.adoc +index 018c825d..93f4f409 100644 +--- a/doc/src/cvpcb/cvpcb.adoc ++++ b/doc/src/cvpcb/cvpcb.adoc +@@ -1,5 +1,6 @@ + :author: The KiCad Team + :doctype: article ++:revdate: @REVDATE@ + :toc: + :ascii-ids: + +diff --git a/doc/src/doc_writing_style_policy/doc_writing_style_policy.adoc b/doc/src/doc_writing_style_policy/doc_writing_style_policy.adoc +index 9e343017..ba839e34 100644 +--- a/doc/src/doc_writing_style_policy/doc_writing_style_policy.adoc ++++ b/doc/src/doc_writing_style_policy/doc_writing_style_policy.adoc +@@ -1,5 +1,6 @@ + :author: The KiCad Team + :doctype: article ++:revdate: @REVDATE@ + :toc: + :ascii-ids: + +diff --git a/doc/src/eeschema/eeschema.adoc b/doc/src/eeschema/eeschema.adoc +index 16604739..0ecc579f 100644 +--- a/doc/src/eeschema/eeschema.adoc ++++ b/doc/src/eeschema/eeschema.adoc +@@ -1,5 +1,6 @@ + :author: The KiCad Team + :doctype: book ++:revdate: @REVDATE@ + :toc: + :ascii-ids: + +diff --git a/doc/src/gerbview/gerbview.adoc b/doc/src/gerbview/gerbview.adoc +index 0c88398d..4708ac28 100644 +--- a/doc/src/gerbview/gerbview.adoc ++++ b/doc/src/gerbview/gerbview.adoc +@@ -1,5 +1,6 @@ + :author: The KiCad Team + :doctype: article ++:revdate: @REVDATE@ + :toc: + :ascii-ids: + +diff --git a/doc/src/getting_started_in_kicad/getting_started_in_kicad.adoc b/doc/src/getting_started_in_kicad/getting_started_in_kicad.adoc +index 1443dde1..17b1b16b 100644 +--- a/doc/src/getting_started_in_kicad/getting_started_in_kicad.adoc ++++ b/doc/src/getting_started_in_kicad/getting_started_in_kicad.adoc +@@ -1,5 +1,6 @@ + :author: The KiCad Team + :doctype: book ++:revdate: @REVDATE@ + :toc: + :ascii-ids: + +diff --git a/doc/src/gui_translation_howto/gui_translation_howto.adoc b/doc/src/gui_translation_howto/gui_translation_howto.adoc +index 8eeff10d..b0bf3d9c 100644 +--- a/doc/src/gui_translation_howto/gui_translation_howto.adoc ++++ b/doc/src/gui_translation_howto/gui_translation_howto.adoc +@@ -1,5 +1,6 @@ + :author: The KiCad Team + :doctype: article ++:revdate: @REVDATE@ + :toc: + :ascii-ids: + +diff --git a/doc/src/idf_exporter/idf_exporter.adoc b/doc/src/idf_exporter/idf_exporter.adoc +index 57e3e9e0..d99bec77 100644 +--- a/doc/src/idf_exporter/idf_exporter.adoc ++++ b/doc/src/idf_exporter/idf_exporter.adoc +@@ -1,5 +1,6 @@ + :author: The KiCad Team + :doctype: article ++:revdate: @REVDATE@ + :toc: + :ascii-ids: + +diff --git a/doc/src/kicad/kicad.adoc b/doc/src/kicad/kicad.adoc +index 1f17b452..b26fb750 100644 +--- a/doc/src/kicad/kicad.adoc ++++ b/doc/src/kicad/kicad.adoc +@@ -1,5 +1,6 @@ + :author: The KiCad Team + :doctype: book ++:revdate: @REVDATE@ + :toc: + :ascii-ids: + +diff --git a/doc/src/pcbnew/pcbnew.adoc b/doc/src/pcbnew/pcbnew.adoc +index 3f229e68..332bc525 100644 +--- a/doc/src/pcbnew/pcbnew.adoc ++++ b/doc/src/pcbnew/pcbnew.adoc +@@ -1,5 +1,6 @@ + :author: The KiCad Team + :doctype: book ++:revdate: @REVDATE@ + :toc: + :ascii-ids: + +diff --git a/doc/src/pl_editor/pl_editor.adoc b/doc/src/pl_editor/pl_editor.adoc +index d27a65ac..2af44d66 100644 +--- a/doc/src/pl_editor/pl_editor.adoc ++++ b/doc/src/pl_editor/pl_editor.adoc +@@ -1,5 +1,6 @@ + :author: The KiCad Team + :doctype: article ++:revdate: @REVDATE@ + :toc: + :ascii-ids: + +diff --git a/doc/src/plugins/plugins.adoc b/doc/src/plugins/plugins.adoc +index e91d64d9..6cdfdc6a 100644 +--- a/doc/src/plugins/plugins.adoc ++++ b/doc/src/plugins/plugins.adoc +@@ -1,5 +1,6 @@ + :author: The KiCad Team + :doctype: article ++:revdate: @REVDATE@ + :toc: + :ascii-ids: + diff --git a/patches/series b/patches/series new file mode 100644 index 00000000..7d20f6ca --- /dev/null +++ b/patches/series @@ -0,0 +1,14 @@ +debian-hacks/Remove-download-target-for-noAvhttp.patch +fixes/Modifing-the-Exec-cmd-in-the-desktop-files.patch +debian-hacks/Adding-needed-SVG-files-and-additinal-arrays.patch +porting-kfreebsd-hurd/Fix-FTBFS-on-kFreeBSD-and-Hurd.patch +fixes/Fix-FTBFS-with-Boost-1.61.patch +fixes/Fixing-some-spelling-issues.patch +fixes/Replace-the-avhttp-library-used-by-the-github-plugin-with.patch +fixes/Add-missing-dependency-github_plugin-pcbcommon.patch +fixes/Replace-avhttp-with-libcurl.patch +fixes/Remove-unused-FindOpenSSL.cmake.patch +fixes/Fix-issue-170-for-real.patch +fixes/KiCadDocumentation.cmake-fix-install-target-for-HTML-docu.patch +reproducibility/add-field-revdate-to-asciidoc-files-of-documentation.patch +debian-hacks/Removing-hyphen-inside-KICAD_FULL_VERSION.patch diff --git a/rules b/rules new file mode 100755 index 00000000..bf311fef --- /dev/null +++ b/rules @@ -0,0 +1,130 @@ +#!/usr/bin/make -f +#export DH_VERBOSE=1 + +export DEB_BUILD_MAINT_OPTIONS = hardening=+all +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/buildflags.mk +CFLAGS+=$(CPPFLAGS) +CXXFLAGS+=$(CPPFLAGS) + +# out of tree build folder for kicad application +DEB_BUILD_DIR=debian/build +# default install folder +INSTDIR=$(CURDIR)/debian/tmp +# catching make jobs from DEB_BUILD_OPTIONS +PARALLEL_BUILD=$(echo $DEB_BUILD_OPTIONS | sed -e '/parallel=/!s/.*/1/;s/.*parallel=\([0-9]\+\).*/\1/g') + +# other variables +VERSION_EXTRA = $(shell dpkg-parsechangelog -S Version | cut -d+ -f2-) +DATE = $(shell date +'%Y-%m-%d' -d"`dpkg-parsechangelog -S Date`") +export REVDATE := $(shell TZ=UTC date -d "$(shell dpkg-parsechangelog -S Date)" +%Y-%m-%d) + +ASCIIDOCFILES := \ + doc/src/cvpcb/cvpcb.adoc \ + doc/src/doc_writing_style_policy/doc_writing_style_policy.adoc \ + doc/src/eeschema/eeschema.adoc \ + doc/src/gerbview/gerbview.adoc \ + doc/src/getting_started_in_kicad/getting_started_in_kicad.adoc \ + doc/src/gui_translation_howto/gui_translation_howto.adoc \ + doc/src/idf_exporter/idf_exporter.adoc \ + doc/src/kicad/kicad.adoc \ + doc/src/pcbnew/pcbnew.adoc \ + doc/src/pl_editor/pl_editor.adoc \ + doc/src/plugins/plugins.adoc \ + $(NULL) + +DEB_KICAD_CMAKE_OPTS := \ + -DKICAD_SKIP_BOOST=ON \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_CXX_FLAGS="$(CXXFLAGS)" \ + -DCMAKE_SHARED_LINKER_FLAGS_RELEASE="$(LDFLAGS)" \ + -DBUILD_GITHUB_PLUGIN=ON \ + -DKICAD_REPO_NAME=stable \ + -DKICAD_VERSION_EXTRA="+$(VERSION_EXTRA)" \ + -DDEFAULT_INSTALL_PATH=/usr \ + -DKICAD_SCRIPTING=ON \ + -DKICAD_SCRIPTING_MODULES=ON \ + -DKICAD_SCRIPTING_WXPYTHON=ON \ + $(NULL) + +DEB_DOC_CMAKE_OPTS := \ + -DCMAKE_INSTALL_PREFIX=/usr \ + $(NULL) + +DEB_I18N_CMAKE_OPTS := \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DKICAD_I18N_UNIX_STRICT_PATH=ON \ + $(NULL) + +DEB_LIBRARIES_CMAKE_OPTS := \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_CXX_FLAGS="$(CXXFLAGS)" \ + -DCMAKE_SHARED_LINKER_FLAGS_RELEASE="$(LDFLAGS)" \ + $(NULL) + +%: + dh $@ --with-python2 --parallel + +override_dh_auto_configure: + sed -i 's/@REVDATE@/$(REVDATE)/' $(ASCIIDOCFILES) + mkdir -p $(DEB_BUILD_DIR) + # configuring KiCad application + dh_auto_configure --sourcedirectory=$(CURDIR) --builddirectory=$(DEB_BUILD_DIR) -- $(DEB_KICAD_CMAKE_OPTS) + # configuring KiCad documentation + dh_auto_configure --sourcedirectory=$(CURDIR)/doc --builddirectory=$(DEB_BUILD_DIR)/doc -- $(DEB_DOC_CMAKE_OPTS) + # configuring KiCad i18n files + dh_auto_configure --sourcedirectory=$(CURDIR)/i18n --builddirectory=$(DEB_BUILD_DIR)/i18n -- $(DEB_I18N_CMAKE_OPTS) + # configuring KiCad libraries + dh_auto_configure --sourcedirectory=$(CURDIR)/libraries/kicad-library --builddirectory=$(DEB_BUILD_DIR)/libraries -- $(DEB_LIBRARIES_CMAKE_OPTS) + +override_dh_auto_build: + # The other parts of KiCad like documentation, i18n files and the + # libraries don't need to be build as arch depended, they even + # don't need to be prebuild before calling dh_install. So ignoring + # here. Only build the KiCad application here. + dh_auto_build --sourcedirectory=$(CURDIR) --builddirectory=$(DEB_BUILD_DIR) + +override_dh_auto_install: + # installing KiCad application + dh_auto_install --destdir=$(INSTDIR) --sourcedirectory=$(CURDIR) --builddirectory=$(DEB_BUILD_DIR) + # building and installing KiCad documentation + dh_auto_install --destdir=$(INSTDIR) --sourcedirectory=$(CURDIR)/doc --builddirectory=$(DEB_BUILD_DIR)/doc + # installing KiCad i18n files + dh_auto_install --destdir=$(INSTDIR) --sourcedirectory=$(CURDIR)/i18n --builddirectory=$(DEB_BUILD_DIR)/i18n + # install KiCad libraries + dh_auto_install --destdir=$(INSTDIR) --sourcedirectory=$(CURDIR)/libraries/kicad-library --builddirectory=$(DEB_BUILD_DIR)/libraries + # some tweaks before running the next dh sequencers + # fixing icon sizes + images=$$(find $(INSTDIR)/usr/share/icons/hicolor/48x48 -name "*.png"); \ + for f in $$images; do \ + size=$$(identify $$f | sed -n 's/.* PNG \(4[^ ]*\) .*/\1/ p'); \ + if [ "$$size" != "48x48" ]; then \ + echo "Resize $$(basename $$f) : $$size => 48x48"; \ + convert -resize '48x48!' $$f $$f.tmp && mv $$f.tmp $$f; \ + fi; \ + done + # The kicad XPM icon comes with a to high resolution, fixing before install. + convert -resize '32x32!' $(CURDIR)/bitmaps_png/icons/icon_kicad.xpm $(CURDIR)/bitmaps_png/icons/kicad.xpm + # remove the cvpcb desktop, it's history + rm $(INSTDIR)/usr/share/applications/cvpcb.desktop + +override_dh_install: + dh_install + dh_python2 + +override_dh_fixperms-indep: + dh_fixperms + # fixing file permissions for *.py files in kicad-common + for i in `find $(CURDIR)/debian/kicad-common/usr -type f -name "*.py"`; do \ + FOUND_PYTHON=$$(head -n1 $$i | grep python); \ + if [ "$$FOUND_PYTHON" != "" ]; then \ + chmod +x $$i; \ + else \ + chmod -x $$i; \ + fi; \ + done + +override_dh_strip-arch: + dh_strip + # strip unneeded symbols from the kicad specific libraries in /usr/lib/kicad/ + strip --strip-unneeded --remove-section=.comment $(CURDIR)/debian/kicad/usr/lib/kicad/_*.kiface diff --git a/source/format b/source/format new file mode 100644 index 00000000..163aaf8d --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/watch b/watch new file mode 100644 index 00000000..866f1abf --- /dev/null +++ b/watch @@ -0,0 +1,10 @@ +# No real watch provided. +# Upstream is not always available in unix format and includes components that +# we normally remove for licence reasons. +# Upstream is packaged from git with some tweaks, see README.source. +version=3 + +#opts=pgpsigurlmangle=s/$1/.asc/, \ +opts=filenamemangle=s/(.*)\.tar\.xz/kicad-$1\.tar\.xz/g,\ +dversionmangle=s/\.dfsg\.\d+$// \ +https://launchpad.net/kicad/ .*\+download/kicad-(.*)\.tar\.xz