== Google Summer of Code 2013 == '''Project''' Extend OSGeo4W Installer '''Short description''' [[BR]] Main goal for this project is develop functionalities in order to ask to the end users by an EULA license for proprietary libraries and building the majority of OSGeo components to x86-64 bits on Windows as well as improve the current OSGeo4W installer. See also [http://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/stonescenter/19002 here]. '''Student Name''' [[BR]] Steve Ataucuri Cruz '''Mentor Name''' [[BR]] Frank Warmerdam === Work done in week 17-21 June #1 === '''1. Work Done :''' [[BR]] * I understood the structure of OSGeo4W Installer * I also setuped a local virtual machine with Windows envirotment and all the tools needed in order to getting a build of setup.exe. * I fixed some errors of setup.exe and I sent my changes to server: * I included a hack implementation of _fstati64() because at linking time presents some problems with Cygwin/Mingw libraries.[https://trac.osgeo.org/osgeo4w/changeset/1207] * I fixed the linking to res.o object when make program try to build setup.exe it presents some problems, I solved removing the codepage in res_* files to use UTF-8 enconding for multilanguage support [https://trac.osgeo.org/osgeo4w/changeset/1208]. * I updated the iniparse.yy file, it has some incompatible changes with the new version of Automake 1.2 and YACC & LEX support.[https://trac.osgeo.org/osgeo4w/changeset/1209] * I removed some obsolete macros in configure.in file, too it was moved to newer configure.ac [https://trac.osgeo.org/osgeo4w/changeset/1210] * I fixed the static library path of libbz2.a and libz.a in Makefile.am file [https://trac.osgeo.org/osgeo4w/changeset/1211] '''2. Problem Faced :''' [[BR]] * Definitely yes, some problems with the installation of Installer but are already solved, many times I needed to read a lot before changing a line of the code of setup installer. '''3. Work to be done in the next week :''' [[BR]] * Next week I need to prepare the new windows dialog for new version of installer. * I will update the wiki of the project to build the new setup. === Work done in week 22-28 June #2 === '''1. Work Done:''' [[BR]] * The main job done this week was integrated a new window dialog "license" with its class license which will download a license file from somewhere (before the community organize the license terms) ie: "http://download.osgeo.org/osgeo4w/release" of every restrictive package. * I added a new resource entry to window dialog [http://trac.osgeo.org/osgeo4w/changeset/1216]. * I added a new entry for Makefile.am [http://trac.osgeo.org/osgeo4w/changeset/1217] * All changes I committed you can see at [http://trac.osgeo.org/osgeo4w/changeset/1218] '''2. Problems Faced :''' [[BR]] * It was a little difficult to understand the flow of window dialog and some classes of installer, I am still learning all the process into installer. * There was a bit problem with the first compilation of new installer with the new class, but it was resolved, I couldn't implement the download process I need more time but I will do it next week with some extra work. '''3. Work to be done in the next week:''' [[BR]] * For two next weeks I will plan something to download a license from a main central repository or individual projects and install into local directory ie: /etc/licenses. I will finish the new license class to automation of every restrictive package like gdal-ecw. === Work done in week 1-5 July #3 === '''1. Work Done:''' [[BR]] This week I have revised many classes of oseo4w installer to see how is the processes of download a package of server (download.osgeo.org). * I have done a modification of setup.ini file to add a link to license file. * I did modifications and was looking for into code where the installer loads the list of package of setup.ini and try to add a field to license '''2. Problems Faced :''' [[BR]] * I had a bit problem with the version of compiler , I was using g++ 3.4 with flag -mno-cygwin to build the installer and I tried to use ddd to debug the code, and now my version of cygwin has changed to new compiler is g++ 4.7.3(current version of cygwin) , I tried to come back g++ 3.4 but in the official list of package of cygwin there is not anymore. This compiler has many bugs fixed and it doesn't support -mno-cygwin flag, I couldn't build the setup, and I spent many hours in order to find a solution '''3. Work to be done in the next week:''' [[BR]] * I will implement a class for download process of a license from a main central repository and install into local directory ie: /etc/licenses. === Work done in week 8-12 July #4 === '''1. Work Done:''' [[BR]] * This week the main work was around support of new compiler, I have changed the installer with new version of mingw compilers and runtime. I was talking with my mentor Frank about advantage and disvantage of new compiler and we decided to modernize it. We had a lot of problems with g++ 3.4 which doesn't support -mno-cywin flag and Cygwin has in their repositories the last version of compilers( g++4.7.3 or mingw*). * I researched how bison and lex work then I had added an entry licence into setup_test.ini which will be used in the installer to download the license terms. * I have fixed the bug with __fstati64 function. * I updated the wiki page with the new configuration. * I have committed all changes : [https://trac.osgeo.org/osgeo4w/changeset/1225], [https://trac.osgeo.org/osgeo4w/changeset/1223], [https://trac.osgeo.org/osgeo4w/changeset/1222], [https://trac.osgeo.org/osgeo4w/changeset/1221] '''2. Problems Faced :''' [[BR]] * I had a problem with a virtual function but it was resolved [https://trac.osgeo.org/osgeo4w/changeset/1226] '''3. Work to be done in the next week:''' [[BR]] * Next week my work will concentrate in scan the setup.ini file which has restrictive packages === Work done in week 15-20 July #5 === '''1. Work Done:''' [[BR]] * I was working with scanning support of setup.ini file. Now the installer can save a list of restrictive package and asking to the user with a new window dialog. You can test my progress choosing some restrictive package(gdal-sde90,gdal-oracle,gdal-mrsid, gdal-grass, gdal-filegdb). I have attached the "setup.override.ini" file with some examples(you have to download in C:\ disk) * I committed all my work in [1] and [2] [https://trac.osgeo.org/osgeo4w/changeset/1229], [https://trac.osgeo.org/osgeo4w/changeset/1228] '''2. Problems Faced :''' [[BR]] * I had a problem with scanning of "setup.ini" file , but it was resolved '''3. Work to be done in the next week:''' [[BR]] * I will download the license text and show to the user. Also I will improve the automation of this process installing into the path of local machine("/OSGeo4W/etc/setup/licenses"). === Work done in week 29-02 August #6 === '''1. Work Done:''' [[BR]] * The main work in this week was around "downloading process" of license file from server. I feel happy because, I finished the first version of this new extend of Installer. So You can try it: * Download "setup.override.ini" file from "http://trac.osgeo.org/osgeo4w/browser" in the root of your local directory "C:\" * Download sources from server http://trac.osgeo.org/osgeo4w/wiki/SetupDevelopment and follow the wiki in order to build "setup.exe" * When you have the setup.exe run it. * Choose the next option: Advance Install > Install from internet > Root Directory > Local package directory > Direct connection * Choose a restrictive package for example "gdal-mrsid" or " gdal-ecw " or both, you should to choose these because I just created a file for each one in download.osgeo.org server. If you choose another restrictive package setup.exe will raise an error, and choose another normal package for example: "gdal-java". * The setup will download the license file from remote server into your local directory "Local Package Directory" , you can see it If you want. * The next step setup.exe will load the file into a window and it will show to user * I committed all my work at [http://trac.osgeo.org/osgeo4w/timeline] from 1230-1233. This is my work of this week. * [https://trac.osgeo.org/osgeo4w/changeset/1230] * [https://trac.osgeo.org/osgeo4w/changeset/1231] * [https://trac.osgeo.org/osgeo4w/changeset/1232] * [https://trac.osgeo.org/osgeo4w/changeset/1233] '''2. Problems Faced :''' [[BR]] * I had resolved many problems with segmentation fault. "segmentation fault" when setup.exe does not find a license file in remote server. '''3. Work to be done in the next week:''' [[BR]] * I will improve some cases when there is no file in remote server and install in "some path" that I will define with my mentor. === Work done in week 29-02 July #7 === '''1. Work Done:''' [[BR]] * This week I had fixed a Bug with the download process when file license isn't in server Added properties of many classes in order to replace the new classes that I was created Replaced some methods for restrictive package * You can see all work at http://trac.osgeo.org/osgeo4w/timeline '''2. Problems Faced :''' [[BR]] * I was learning classes of database of package, I am not familiar with these classes and code. '''3. Work to be done in the next week:''' [[BR]] * Testing and I will work in the backend with perl files for generation of automatic packages and learn perl programming === Work done in week 05-09 August #8 === '''1. Work Done:''' [[BR]] * This week, I have been doing some tests and I decided to build the osgeo4w setup in another clean machine with windows seven. But the oficial cygwin setup.exe has changed and they are released setup-86.exe for 32bit and setup-x86_64.exe for 64bit installations, and I noticed that they have some unresolved dependencies with i686-pc-mingw32-gcc-g++ 32bit compiler. So I couldn't build the setup.exe with the last compiler i686-pc-mingw32-gcc-g++ 4.7.3(in their repositories) , I was building all time with i686-pc-mingw32-gcc-g++ 4.5.2-1 version without problems(in another virtual machine) but when I used the version 4.7.3, I got some errors about "-Werror=unused-but-set-variable". Before to change code, first I changed to previous version of mingw-gcc-g++ and I found that i686-pc-mingw32-gcc-g++ (4.5.2-1) could not start cc1plus.exe because it could not find some shared object files. Cygwin Setup-32.exe should have considered all the dependencies but maybe I've got a bug or a missing one somewhere (I think Cygwin people have forgotten some dependencies of its setup.ini file). However I tried to install all dependencies for the 4.5.2-1 version of mingw-gcc-g++.exe and its dependencies like runtime and libs, but I still got errors. I spoke with my mentor about it and We decided to work with the last compiler and resolve the "unused variables" Nevertheless I have worked on migration to last version of mingw-gcc-g++ compiler, adding log messages to setup, modified bootstrap script, Makefiles and others. * You can see all work at http://trac.osgeo.org/osgeo4w/timeline '''2. Problems Faced :''' [[BR]] * Yes I got "segmentation fault" in main.cc file (109-118 lines) that I couldnt' fixed yet. My mentor helped but if someone could give me other suggestions they are welcome. '''3. Work to be done in the next week:''' [[BR]] * I am going to continue working with the support of mingw-gcc-g++ and resolve some errors in main.cc file. === Work done in week 12-16 August #9 === '''1. Work Done:''' [[BR]] * I have fixed the license display widget resize in the installer * I had stored licenses that have been installed in order to not installed it again. * I had resolved the problem in main.cc file, because the current compiler couldn't build setup.exe because It had some incompatible macros ( __CYGWIN32__). I removed the problem with unused variables( compiler can't build them if there are). * I also applied and merged a patch file with md5 sums feature for license file proposed by Jürgen(autor). * I had made sure the C runtime functions use the same code page as the GUI * And I updated the make files and bootstrap script for automatic generation of configure file and st_configure file was removed because is unnecesary and I updated wiki pages. '''2. Problems Faced :''' [[BR]] * No '''3. Work to be done in the next week:''' [[BR]] * I am going to work with post install issues === Work done in week 19-23 August #10 === '''1. Work Done:''' [[BR]] * I am still working in post installation files * I added printing features to licenses. * I did format to licenses in order to support break lines of .txt licenses '''2. Problems Faced :''' [[BR]] * Yes, I had some problems with end lines of .txt licenses showing into windows controls, but it was resolved '''3. Work to be done in the next week:''' [[BR]] * I will continue working in postinstall files * I will do a translation of res_en.rc file to spanish language * I will contact with other translators of each languages in order to have res_* files updated with new features of installer === Work done in week 26-30 August #11 === '''1. Work Done:''' [[BR]] * The main work done this week was around automation of generation setup.ini file with a perl script, I was learning perl language in order to change some script files from the server. * I had contacted with some autors of traductions and added Russian & Ukrainain languages to svn server * I am working with spanish version, in two days I will have finished * I tested printing functionality of license and it works fine. * I added locales for support languages. * I tested gdal-ecw and gdal-mrsid packages and they worsk fine * I tested all setup installer '''2. Problems Faced :''' [[BR]] * I had some problems learning perl languages and creating test for generation of setup.ini file but it was resolved * I deleted one directory of packages, but it was recovered immediately '''3. Work to be done in the next week:''' [[BR]] * I will finish automation setup.ini with perl script * Testing locales of languages * Prepare package documentation on licenses * I will continue testing. === Work done in week 2-6 September #12 === '''1. Work Done:''' [[BR]] * I finished the automation of perl script for generation of "setup.ini" file. I worked on server in a directory called [http://download.osgeo.org/osgeo4w/testing_license/] where I created my testing version of tree with the new perl script. * I did documentation about how to add a new license file to non-open source package on server side and how to recreate the setup.ini file with a genini perl script at [http://trac.osgeo.org/osgeo4w/wiki/GSoc2013Tests] * I added a short script "st_configure" to source for generation of Makefile * I fixed some bugs this week on code, you could see at [http://trac.osgeo.org/osgeo4w/timeline] '''2. Problems Faced :''' [[BR]] * No '''3. Work to be done in the next week:''' [[BR]] * I will continue working on save all licenses in a specific directory * I will talk with my Mentor about my work and "Pencils down" date * I will add more Documentation