Top Banner
Muhammet Kara LibreOffice Developer Consultant Software Engineer @Collabora Development Workshop
22

LibreOffice Developer Consultant Software Engineer @Collabora · LibreOffice Development Workshop, METU NCC, 2018 Code Reading Timeline of major StarOffice derivatives 1985 1994 1995

Feb 01, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • Muhammet KaraLibreOffice DeveloperConsultant Software Engineer @Collabora

    Development Workshop

  • LibreOffice Development Workshop, METU NCC, 2018

    Why LibreOffice?

    Libre/free, powerfullFun project & fantastic communityLucrative experience11 students @GSoC 2018Various companies, as part of the community

  • LibreOffice Development Workshop, METU NCC, 2018

    Companies/Institutions

    CanonicalCIBCollaboraIgaliaRed HatSUSEThe Document FoundationTÜBİTAK ULAKBİMSome Turkish companies

  • LibreOffice Development Workshop, METU NCC, 2018

    Required Skills

    Programming

    Code reading

    Patience

  • LibreOffice Development Workshop, METU NCC, 2018

    Programming

    C++ → Main language of core

    Python → Testing

    Javascript → LO Online

    Java, BASIC...

  • LibreOffice Development Workshop, METU NCC, 2018

    Code Reading

    Timeline of major StarOffice derivatives

    2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 20161996 1997 1998 19991994 19951985 2017 2018

    StarOffice 1.0

    StarOffice 2.0

    StarOffice 3.0

    StarOffice 3.1

    StarOffice 4.0

    StarOffice 5.0

    StarOffice 5.1

    StarOffice 5.2

    StarOffice 6.0

    OpenOffice.org 638c

    OOo 1.1

    ooo-build

    NeoOffice 3.1

    NeoOffice 3.2

    NeoOffice 3.3

    NeoOffice 2013

    NeoOffice 2014

    NeoOffice 2015

    LO 3.5

    LO 3.4

    LO 3.3

    LO 3.3b

    LO 3.6

    LO 4.0

    LO 4.1

    LO 4.2

    LO 4.3

    LO 4.4

    LO 5.1

    LO 5.2

    LO 5.0

    LibreOffice 5.3

    StarOffice 8.0

    StarOffice 7.0

    OOo 1.0

    StarOffice 9.0

    OOo 2.0

    OOo 2.1

    OOo 2.2

    OOo 2.3

    Oracle OpenOffice

    3.3

    Apache OpenOffice

    3.4AOO 4.0

    AOO 4.1

    OOo 2.4

    OOo 3.0

    OOo 3.1

    OOo 3.2

    OOo 3.3b

    WorkPlace 2.6

    IBM Symphony 1.0

    IBM Symphony 3.0

    Go-oo 2.3

    Go-oo 2.4

    Go-oo 3.0

    Go-oo 3.1

    Go-OpenOffice 3.2

    NeoOffice 2.1

    NeoOffice 1.2

    NeoOffice 2.2

    NeoOffice 3.0

  • LibreOffice Development Workshop, METU NCC, 2018

    Code Reading

  • LibreOffice Development Workshop, METU NCC, 2018

    Patience

    Many languages

    Hundreds of classes

    Complicated relations

    Note taking

    Logging

    Small steps

    Asking for help

  • LibreOffice Development Workshop, METU NCC, 2018

    What is where?

    C++ code → .cxx, .hxx

    Interface designs (XML) → .ui

    String literals → .src, .hrc

  • LibreOffice Development Workshop, METU NCC, 2018

    Tools - Offline

    IDE/Editor: Vim, emacs, KDevelop, eclipse…

    Git, grep → Code management & search

    Glade → Interface design

  • LibreOffice Development Workshop, METU NCC, 2018

    Tools - Online

    GerritBugzillaTDF WikiOpenGrokCppcheck

    http://devcentral.libreoffice.org/

    http://devcentral.libreoffice.org/

  • LibreOffice Development Workshop, METU NCC, 2018

    Let’s Start

    Get & build the source codeChoose a problem/bug to solveFind the relevant code segmentDig deeperTest the changesSubmit patch

  • LibreOffice Development Workshop, METU NCC, 2018

    Get & Build the Source Code

    git clone https://gerrit.libreoffice.org/core libreoffice

    sudo apt-get build-dep libreoffice

    ./autogen.shmake

    ./instdir/program/soffice

    https://www.libreoffice.org/about-us/source-code/

    https://www.libreoffice.org/about-us/source-code/

  • LibreOffice Development Workshop, METU NCC, 2018

    IDE Integration

    make & make check

    make qtcreator-ide-integration

    https://wiki.documentfoundation.org/Development/IDE

    Code completionGo to definition, find usagesSwitch between header and source easily & quicklyIntegrated debuggingFamilier interface...

    https://wiki.documentfoundation.org/Development/IDE

  • LibreOffice Development Workshop, METU NCC, 2018

    Find the Relevant Code Segment

    OpenGrok

    git grepgit grep “a string on a dialog”

    http://docs.libreoffice.org/

    E-mail listhttp://lists.freedesktop.org/mailman/listinfo/libreoffice

    IRC#libreoffice-dev @ freenode

    http://docs.libreoffice.org/http://lists.freedesktop.org/mailman/listinfo/libreoffice

  • LibreOffice Development Workshop, METU NCC, 2018

    Dig deeper...

    Enable debugging./autogen.sh –enable-debugmakemake dev-install

    Run with GDBcd [lo-root]/install/program. ./ooenvgdb ./soffice.bin(gdb) run

    http://www.yolinux.com/TUTORIALS/GDB-Commands.html

    http://www.yolinux.com/TUTORIALS/GDB-Commands.html

  • LibreOffice Development Workshop, METU NCC, 2018

    Test the changes

    Rebuild a single modulemake [module-name]

    Run tests/checksmake check

    Run & check manually

  • LibreOffice Development Workshop, METU NCC, 2018

    Submit the Patch

    Register on gerrit, and complete the setuphttps://wiki.documentfoundation.org/Development/gerrit

    Commit the changesgit commit

    Submit to gerrit./logerrit submit master

    https://wiki.documentfoundation.org/Development/gerrit

  • LibreOffice Development Workshop, METU NCC, 2018

    More...

    http://www.libreoffice.org/community/developers/

    http://www.libreoffice.org/community/developers/

  • LibreOffice Development Workshop, METU NCC, 2018

    LibreOffice is being developed, improved, and distributed by a world-wide community of volunteers (individuals & companies).You can also join the LibreOffice project as a:

    DeveloperTesterTranslatorSupport volunteerDesignerMarketer…

    www.libreoffice.org.tr

    Community

  • LibreOffice Development Workshop, METU NCC, 2018

  • LibreOffice Development Workshop, METU NCC, 2018

    All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License (unless otherwise specified). "LibreOffice" and "The Document Foundation" are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these therefore is subject to the trademark policy.

    Thank you!https://muhammetkara.com

    [email protected]@collabora.com

    @muhamm3tkara

    http://libreoffice.orghttps://wiki.documentfoundation.org/Developmenthttp://www.gnome.org/~michael/blog/http://www.lanedo.com/libreoffice-development-howto/

    References

    http://creativecommons.org/licenses/by-sa/3.0/http://wiki.documentfoundation.org/TradeMark_Policyhttps://muhammetkara.com/mailto:[email protected]:[email protected]://libreoffice.org/https://wiki.documentfoundation.org/Developmenthttp://www.gnome.org/~michael/blog/http://www.lanedo.com/libreoffice-development-howto/

    First Slide ExampleDefault ExampleShapesSlide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Final Slide Example