Para começar a hackear o LibreOffice FISL 2012, Atualizado Olivier Hallot

Documentos relacionados
1. Abra o terminal e instale o Git, para que assim você possa obter o código fonte do programa e suas atualizações.

Entre os VCS s, podemos sitar o Mercurial, Subversion, CVS, Git dentre outros. E é do Git que vamos falar hoje.

Gerenciamento de Pacotes no Debian

TUTORIAL GIT Victor Breder Comp-19 Março de 2017

Teorias do Módulo da Satisfatibilidade (Satisfiability Modulo Theories - SMT)

PROTEUM & PROTEUM/IM JACKSON ANTONIO DO PRADO LIMA SILVIA REGINA VERGILIO

Destaque em verde indica instalação de Cekeikon completa com GPU/CUDA8.0.

Borland Connect 1.3. Notas da versão

Orientação a Objetos. Thiago Messias Evangelista UESC Universidade Estadual de Santa Cruz Version LibreOffice Productivity Suite

Descobrindo Lua. Sérgio Queiroz de Medeiros. Campus Party LabLua. Sérgio Queiroz de Medeiros Descobrindo Lua 1

GRUPO: Rafael Igor Vanderlei Vieira

INSTALACAO PRODUTOS DIGIVOICE NO ISSABEL PREPARAÇÃO DO SISTEMA

Nota sobre esta versão: Esta versão (Cekeikon 5.6) vem com duas versões de OpenCV. Por isso, o tamanho do arquivo é grande.

Configuração do Apache Cordova Lab. 13. Prof. Bruno C. Vani

PySIGEP Documentation

Iniciando Git e GitHub. Univali, 2017 Benjamin Mezger

TUTORIAL DE INSTALAÇÃO DO AMBIENTE DE DESENVOLVIMENTO ANDROID NO UBUNTU

Primeiros passos com no trabalho com Git

Introdução à Programação de Computadores

git git Utilização básica no controle de versão de pacotes João Eriberto Mota Filho Utilização básica no controle de versão de pacotes

Curso de git. Aula de outubro de 2018

Guia - SimEON (Simulator for Elastic Optical Networks ) William Silva dos Santos Observações:

Introdução ao Git. Introdução ao GIT. Anderson Moreira. Baseado nos slides disponíveis em http//free electrons.com

Camera, Kinect e ROS. Andrey Masiero. 5 de fevereiro de 2016

Software Livre e o Projeto KDE

Escrito por Luís Talora Qui, 19 de Maio de :32 - Última atualização Seg, 11 de Julho de :45

Masternodes da Moeda Discount

INTRODUÇÃO À INTEGRAÇÃO CONTÍNUA. Jadson Santos Software Engineer Informatic Superintendence (SINFO) - UFRN

Administração de Sistemas Operacionais

gnu/linux para noobs Daniela

Como criar sua aplicação em React em poucos minutos. um ebook produzido por: CodePrestige

Instalação e Configuração de Servidores Linux Server. Prof. Alex Furtunato

Tutorial Básico Sobre Mininet

Linguagens de Programação

AP401 / AP402 / AP404 AP411 / AP412 / AP414 AP408 / AP418 APE401 / APE402 / APE404 APE411 / APE412 / APE414

Atualizar messenger nova versão 2017

VANTAGENS DE USAR APACHE MAVEN NA PROGRAMAÇÃO.

Live Blue (

Listas, conjuntos e dicionários

Online Help????????????????????? SOPAS-SUI SOPAS ET

Manual de instalação de programas. 1º- Abra o terminal e logue-se como super usuário sudo su + enter e digite a senha;

Mini Curso Gerenciamento de Configuração e Mudança com GIT + Eclipse. Jadson Santos Amador Pahim

TUTORIAL DE USO DO GIT JUNTO AO ECLIPSE

Instruções para instalação do Opencv no Qt Creator com o MinGW

LibreOffice versão O essencial para sua prova WRITER. O único lugar em que o sucesso vem antes do trabalho é no dicionário.

Controle de versão utilizando Git André G. C. Pacheco Janeiro de 2018

Programação Orientada a Objetos Relacionamentos entre classes

Controle de Versões com o Git

KDE para Futuros Gearheads V1.1

O Manual do KPeg. Graeme Gott Ronny Yabar Aizcorbe Tradução: José Pires

José cria um repositório vazio no Bitbucket ( José cria no seu computador de desenvolvimento um repositório local

Introdução à Informática

Introdução à Programação Aula 04. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Uma breve introdução a C++ no Eclipse

Customização ao Extremo

Sistemas Operacionais II. Linux - Introdução

OpenWrt: modelagem do

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

Git. Leonardo Gresta Paulino Murta

DynaMed Plus Como pesquisar

Introdução ao. Susana Barbosa. Mestrado em Ciências Geofísicas

Uma Introdução aos Sistemas de Controle de Versão Distribuídos. Leonardo Gresta Paulino Murta

Python para Bioinformática. Visão Geral Prof. Alessandro Brawerman

Introdução à Informática

DESBRAVANDO O GIT E O GITHUB

Microsoft Visual Studio Community 2013

Tuplas. Prof. Alberto Costa Neto Programação em Python

J0HN 7H3 R1PP3R J1y4n y4r

Programação Linear Aplicada em Redes de Telecomunicações. Prof. Rodrigo de Souza Couto

Manual do KonsoleKalendar. Tuukka Pasanen Allen Winter Revisão: Malcolm Hunter Tradução: Marcus Gama

BR localization: Hotfix 001. Technical documentation Documentação Técnica Version Oct 16, de outubro de 2018

Usando o Eclipse - Fundamentos. Professor Vicente Paulo de Camargo

1 Como compilar seu código? 2 Comandos de terminal:

BR localization: Hotfix 111. Technical documentation Documentação Técnica Version Nov 06, de novembro de 2018

Aula 11 - Enjaulamento de SO

LABORATÓRIO DE PERÍCIA DIGITAL

Manual de Instalação do TelEduc 4.4

Manual. Instalação de arquivos e pacotes no. Linux Educacional. Gerenciando pacotes e arquivos. Produzido por: Rafael Nink de Carvalho

OFFICE. OFFICE http// 1/18

Universidade Tecnológica Federal do Paraná (UTFPR) Disciplina: CPGEI/PPGCA - Robótica Móvel Experimentação Virtual

Aula 02. Prof. Diemesleno Souza Carvalho

Configurando ambiente de desenvolvimento React Native

Universidade Federal de Alagoas Grupo de Pesquisa Cidadania e Poĺıticas Públicas Introdução ao R para Ciências Sociais

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Administrando Kernel no Debian GNU/Linux

Tutorial Ambiente, instalação e começando um novo projeto Django

Kernel Linux. O que é e como ajudar no seu desenvolvimento

Projeto GoHome. Tutorial de Instalação Android Studio e SDK

Programação orientada a objetos em C puro: o caso do htop

Introdução ao Git. Laboratório de Programação. Pedro Vasconcelos, Manuel Barbosa, DCC/FCUP. Fevereiro 2016

Preparatório OBI. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula 01 Introdução a C++

1/16 MAKEFILES Makefiles Programação II

Gerando um programa executável a partir de um módulo Python

Principais Idiomas de Laços. Prof. Alberto Costa Neto Programação em Python

Monitoração Distribuída com Nagios e Gearman

Sistemas Operacionais Abertos

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Introdução ao ROS. Andrey Masiero. 5 de fevereiro de 2016

Transcrição:

Para começar a hackear o LibreOffice FISL 2012, Atualizado 1

O que veremos hoje Vamos falar do desenvolvimento do LibreOffice Vamos falar do repositório GIT Vamos falar sobre como baixar o fonte Vamos gerar os dados de configuração da compilação Chaves de compilação principais Vamos tentar compilar e resolver os problemas da compilação EASY-HACKS Vamos falar sobre fazer patches 2

Desenvolvimento do LibreOffice Sobre o Fonte 30.000 arquivos C, C++, Java, Perl, Python Muita coisa velha LIPOASPIRAÇÃO: /unusedcode.easy Comentários em Alemão Conhece alemão?... que pena... Preferência por desenvolver no Linux Desenvolvedores RedHat, SUSE, Canonical, Lanedo, Tata Devs individuais, EU!... E VOCÊ!!! 3

Não se iluda: o Mundo é WINDOWS Downloads by product 100000 90000 80000 70000 60000 50000 40000 30000 20000 10000 0 2011-01-25 2011-02-25 2011-03-25 2011-04-25 2011-05-25 2011-06-25 2011-07-25 2011-08-25 2011-09-25 2011-10-25 Win-x86-multi Win-x86-all_lang Portable MacOS-x86 MacOS-PPC Linux-x86-64 Linux-x86 DVD >90% é Windows 4

Baixar o fonte do LibreOffice 5

Repositório GIT $ mkdir git $ cd git $ git clone git://anongit.freedesktop.org/libreoffice/core libo Cloning into libo... Remote: Counting objects: 76845, done. remote: Compressing objects: 100% (17328/17328), done. remote: Total 76845 (delta 60786), reused 74045 (delta 58579) Receiving objects: 100% (76845/76845), 15.82 MiB 1.17 MiB/s, done. Resolving deltas: 100% (60786/60786), done. $ cd libo./git pull -r 6

Autogen 7

Autogen.sh O autogen.sh irá gerar As variáveis de ambiente As configurações para o make Verificar as dependências Não permite prosseguir se as dependências não forem cumpridas Indica os pacotes de desenvolvimento necessários ao LibreOffice DICA: autogen.lastrun DICA: sudo apt-get build-dep libreoffice 8

Autogen.sh Parâmetros importantes --with-num-cpus --with-max-jobs --with-vendor = Darth Vader --with-lang=pt-br en-us --disable-mozilla --enable-kde4 Autogen.sh --help 9

Make 10

Make make Faz tudo... Compila e linkedita make dev-install Cria uma árvore de instalação na sua área, para testes. ~/git/core/install/program/soffice make clean Limpa tudo e recomeça do zero!!!!! Obs: baixe o make 3.82!!!! 8 horas / N.º de CPUs 11

O que queremos? Compilar mais rápido Melhorar os MAKES, Builds Remover código sem uso Modernizar o código Novas classes de strings Novas classes STL Novas tecnologias do C++ 11 Novas tecnologias de compilação

O que queremos? Novas features Novas funções OpenFormula Animações do Impress Nova interface!!! Melhorar a Interoperabilidade Mais filtros de importação (Corel, Visio, Publisher) Interoperabilidade com Microsoft (docx, xlsx, pptx)

Refatoração de Strings String OUString, OString UniString OUString + outras formas de Strings que existem no código... Classes String e UniString em desuso!

Refatoração de Strings Simplificação do namespace rtl::oustring OUString rtl::ostring OString Using rtl::oustring (nada) Using rtl::ostring (nada)

Refatoração de Strings OUString( RTL_CONSTASCII_USTRINGPARAM( bla bla bla )) OUString( bla bla bla ) OString( RTL_CONSTASCII_STRINGPARAM( bla bla bla )) OString( bla bla bla ) Outras macros que embutem essas: C2U, A2U

Refatoração de Strings OUString MeuString;... - MeuString = OUString( bla bla bla ); + MeuString = bla bla bla ; OString MeuString;... - MeuString = OString( bla bla bla ); + MeuString = bla bla bla ;

Refatoração de Strings Exceções: Return return bla bla bla ; return OUString( bla bla bla ; return bla bla bla ; return OString( bla bla bla ; Operador ternário? MeuString = Cond? Sim : Não ; MeuString = Cond? OUString( Sim ) : OUString( Não);

Booleanos Sal_Bool bool Sal_True true Sal_False false

Unused code Rotinas que não são chamadas nunca Podem ser descartadas unusedcode.easy na raiz Eliminar: *.cxx e *.hxx, e possivelmente outras coisas tipo *.hrc e *.src SwSortElements::Insert(SwSortElement* const&, unsigned short&) SwSortElements::Insert(SwSortElement* const*, unsigned short) SwSortElements::Insert(SwSortElements const*, unsigned short, unsigned short) SwSortElements::Remove(SwSortElement* const&, unsigned short) SwSortElements::Remove(unsigned short, unsigned short)

Unused code

Easy Hacks Excelente para começar a desenvolver. Mentoring de alguns do nossos MEGADEVs Alguns são super-fáceis Limpeza do código: BUG 43058: remover duplo ;; no código BUG 42768: Acabar com o cachorro! <wiki>/development/easy_hacks Ordenado por competência <wiki>/development/easy_hacks_by_required_skill Ordenado por dificuldade <wiki>/development/easy_hacks_by_difficulty 23

Patchando o código Você fez um PATCH!!!!! Testou, testou, testou... e funciona!!!! Precisa agora submeter o Patch aos MEGADEVS git add <meu arquivo modificado> Abre um novo arquivo no vi para você descrever sua modificação 1 ª linha é título, 2ª é vazia, 3ª é descrição com detalhes git commit Insere o seu arquivo no git./logerrit submit Submete seu commit para analise dos MEGADEVS 24

GERRIT Gerrit é uma ferramenta para colaboração de patches Você submete seu patch e ele fica visível para todos Um desenvolvedor irá revisar e aplicar seu patch http://gerrit.libreoffice.org Sempre use o gerrit Setup muito fácil: use seu OpenID (conta do Google, Yahoo, Twitter, etc...) Segurança com sua chave SSH Instruções: http://wiki.documentfoundation.org/development/gerrit/setup/pt-br 25

Mais dicas, importantes Lista de discussão de devs no Brasil (em português) dev@pt-br.libreoffice.org Para começar e discutir em protuguês Lista de discussão de dev do LibreOffice http://lists.freedesktop.org/mailman/listinfo/libreoffice Essa lista é onde os devs discutem tudo que for relacionado ao desenvolvimento do código, C++, Patches, etc... IRC: irc.freenode.net, #libreoffice-dev Megadevs on-line, para tirar dúvidas http://docs.libreoffice.org/ 26

Mão à obra! Obrigado! for supporting LibreOffice! 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. 27