Ir para conteúdo
  • Cadastre-se

dev botao

Instalar Acbr No Lazarus - Mac Os X


  • Este tópico foi criado há 958 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Olá a todos!

 

Gostaria de saber se alguém do fórum já conseguiu a proeza de instalar algum componente do ACBr no Lazarus rodando no sistema operacional Mac OS X.

 

Eu tentei bastante, mas encontrei inúmeros erros na unidade ACBrUtil e muitas outras...

 

Tentei corrigir algumas coisas..., mas na verdade eu devia conhecer bem os componentes para ter êxito nessa tarefa... o que, no momento não acontece.

 

Já uso o ACBr no Lazarus (no Windows e no Linux) há algum tempo e sempre consegui tirar muito proveito disso.

 

Porém, confesso que procurei bastante aqui no fórum e na net mesmo e não encontrei nenhuma notícia de quem usa os componentes no Lazarus (MAC OS X). Achei algumas pessoas que usam ACBrMonitor... mas quem sabe não existe um outro teimoso por aí...

 

Não estou postando os erros aqui agora, porque são muito erros de compilação e também porque o objetivo do tópico é descobrir se alguém já tentou, ou se os principais desenvolvedores tem uma ideia sobre a dificuldade de tornar compatível. A partir daí, eu mesmo me disponho a esforçar-me para tal tarefa.

 

Grato pela atenção dos colegas, aguardo as opiniões... (torcendo os dedos).

 

[]`s

 

Messias Henrique

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Acho que você é a primeira pessoa a querer usar o ACBr no MAC mais especifico IOS

acredito que esses erros se devam a falta de compatibilidade entre a plataforma

se quiser pode fazer as compatibilidades sempre lembrando de estar de acordo com o código do ACBr

e poste as units que será avaliado e subido ao SVN

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

A compilação em MAC deveria ser bem parecida com a do Linux...

 

Não vejo outro alternativa a não ser postar os erros e iniciarmos uma analise...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Concordo com o Daniel e o Juliomar. Se tiver problema com algum erro, manda a mensagem aí que a gente tenta ajudar.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Olá Pessoal!

 

Então... acho que tenho boas notícias...

 

Conforme o Daniel havia dito, era pra funcionar como se fosse no no Linux (a compilação).

 

No entanto, haviam alguns ifs de diretivas ( não sei bem como vocês chamam esses ifs aqui ) meio restritivos... 

 

Para o OS X usamos { $IFDEF DARWIN }... e para o Linux, analogamente { $IFDEF LINUX }. Porém para evitar a repetição de código desnecessária... e observando a similaridade dos *unix  ( Mac OS e Linux ) , arrisquei mudar ambos para { $IFNDEF MSWINDOWS }. É claro que o mínimo possível (só onde houve erro). Não sei se mexi em algo que não devia ( acho que não ), mas para tirar qualquer dúvida segue uns prints da diferenças entre os arquivos que alterei... (apenas dois arquivos: ACBrUtil.pas e GIf3.pas).

 

../Fontes/ACBrComum/ACBrUtil.pas

aoKwHOt.png

 

..Fontes/ACBrDiversos/Gif3.pas

 

SlN8Urx.png

 

Bom, mas até aqui houve um pequeno avanço. Até então nada instalava agora consegui instalar os pacotes ACBrComum e ACBrDiversos. O que mais preciso é o serial, portanto amanhã volto a trabalhar nisso. ;)

 

Abaixo segue alguns screens dos componentes instalados... (poucos ainda..., mas lindos!)

 

aaF0dNO.png

 

Testei alguns projetos (exemplos) e rodaram normalmente...

 

VqTxryB.png

 

 

Bem pessoal... por hoje é só... Mas amanhã vou tentar mais avanços.

 

Se vocês acharem que as modificações feitas não quebram a compatibilidade com as outras plataforma (não tive tempo de verificar isso) e que são pertinentes, eu posso enviar os arquivos alterados... (apesar que, por enquanto, as alterações forma mínimas)

 

Por enquanto, muito obrigado a todos pela atenção e pelas opiniões.

 

[]`s

 

Messias Henrique

  • Curtir 5
  • Haha 1
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Parabéns Messias

agora o interessante é você efetuar as alterações em um todo testar, tentar verificar senão ficou incompatibilidade

e subir os arquivos aqui no fórum que o pessoal com certeza vai olhar e subir ao svn

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...
  • Consultores

Muito interesante a iniciativa do nosso colega messiashenrique,não tenho um MacX OS para apoia-lo,mas quero deixar aqui registrado meu apoio moral.

 

Parabéns pela iniciativa.

 

GabrielLampa

Você também pode fazer isso por usar o botão "Curtir" que fica abaixo do post que você apreciou.

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Consultores

Poderia sim,mas não tenho cadastro em nenhuma rede Social. :ugeek:

O botão curtir é interno do fórum. Não é integrado a redes sociais. Mesmo sem cadastro em nenhuma rede social, se apertar, o botão funciona... :ph34r:

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Muito interesante a iniciativa do nosso colega messiashenrique,não tenho um MacX OS para apoia-lo,mas quero deixar aqui registrado meu apoio moral.

 

Parabéns pela iniciativa.

 

GabrielLampa

 

Ola Gabriel! Muito obrigado pelo apoio.

 

Ja consegui instalar outros componentes da paleta ACBr, inclusive os o ACBrSerial (que possui inumeros recursos importantes, dentre eles, o ACBeECF). No entanto, ainda nao tive tempo de testar a compatibilidade dos arquivos modificados em outros ambientes (Linux e Windows). Porem, acredito que nao haverao grandes problemas...)

 

Assim que eu o fizer, vou enviar os fontes para os coordenadores do projeto.

 

Em breve vou colocar aqui novas screens da paleta bem mais completa.

 

Att.

 

Messias Henrique

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Olá todos!

 

Conforme eu havia prometido, estou postando uma nova screen da paleta de componentes do ACBr instalados no Lazarus Mac OS.

 

3zwnRNZ.png

 

Também podemos ver um aplicativo de exemplo (ECFTeste) sendo executado...

 

TAERNUx.png

 

Bem, infelizmente ainda não consegui instalar o componente que mais preciso (ACBrNFe2), mas... ainda não desisti.

 

Segue em anexo as alterações que fiz nos quatro arquivos abaixo:

 

 ../Fontes/ACBrComum/ACBrUtil.pas

../Fontes/ACBrDiversos/Gif3.pas

../Fontes/ACBrSerial/ACBrECFBematech.pas

../Fontes/synalist/synaser.pas

 

É importante frisar que testei o código modificado nos ambientes: Windows, Linux (Ubuntu) e Mac OS e funcionou perfeitamente em todos. Entretanto, testei apenas no Lazarus (não possuo Delphi). Contudo, creio que não haverá problema para o compilador da Borland, pois não invadi o seu escopo.

 

Att.

 

Messias Henrique

diff.txt

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

O pacote PCN2 compila normalmente, aliás o ACBrOpenSSL e ACBrNFe2 também compilam perfeitamente (Não tentei o ACBrCTe ainda). Porém quando mando instalar, o Lazarus faz todo o processo e quando vai se reconstruir, ocorrem os erros:

zKgDXHM.png

 

Só lembrando que instalei as bibliotecas (libxml2, libxslt e libxmlsec1) e ainda criei os links devidos. Inclusive, se a gente conseguir instalar, acho prudente alterar as chamadas dessas libs pela extensão .dylib no Mac OS ao invés de .so como é no linux. Mas isso é apenas um detalhe.

 

Sobre os 4 arquivos alterados..., seguem em anexo (compactados)

 

Att.

 

Messias Henrique

alteracoes.zip

alteracoes.zip

Editado por messiashenrique
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Apliquei o patch parcialmente...

 

- Não apliquei o patch em synaser.pas, pois é do Projeto Synapse

- Algumas mudanças desnecessárias em ACBrUtil.pas (pois só cairiam no IFDEF MSWINDOWS)

- Os fontes de ACBrECFBematech.pas estavam desatualizados...

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Apliquei o patch parcialmente...

 

- Não apliquei o patch em synaser.pas, pois é do Projeto Synapse

- Algumas mudanças desnecessárias em ACBrUtil.pas (pois só cairiam no IFDEF MSWINDOWS)

- Os fontes de ACBrECFBematech.pas estavam desatualizados...

 

É, eu havia imaginado que as modificações do synaser.sas deviam ser enviadas ao projeto Synapse, mas se observar é dentro de uma diretiva IF DARWIN, isto é, não afeta nenhum usuário que não seja do Mac OS. Vou ver se consigo entrar em contato com eles.

 

Quanto as modificações que você aplicou, não sei se já estão no svn..., mas olha só:

 

DiW6HMV.png

 

Parece que na última revisão (5186) não houve nenhuma alteração. A propósito, não entendi se você se refere ao arquivo que eu enviei (ACBrECFBematech.pas) estar desatualizado, pois eu atualizei minutos antes de aplicar as correções... (5185).

 

De qualquer forma, muito obrigado pela atenção e dedicação de todos vocês. E, coloco-me a disposição para ajudar a tornar o projeto ACBr realmente multi-plataforma.

 

Att.

 

Messias Henrique

Link para o comentário
Compartilhar em outros sites

Estou fora do meu escritório... e aparentemente um Firewall está bloqueando meu commit no SVN...

 

Ah... tudo bem, vou aguardar... Mas, se você tiver um tempinho olha novamente as modificações em ACBrUtil.pas, pois não sei onde estão as alterações que só estariam dentro de IFDEF WINDOWS... Só alterei as que deram problemas no Mac OS. Talvez se trate de um IFNDEF WINDOWS, não?

 

De qualquer forma, vou aguardar e tentar instalar quando os arquivos tiverem sido subidos.

 

Att.

 

Messias Henrique

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Fiz pequenas modificações nessa unit para não afetar usuários Linux

{$ELSE}
 function FlushFileToDisk(sFile: string): boolean;
 var
   hDrive: THandle;
 begin
   hDrive := fpOpen(sFile, O_Creat or O_RDWR {$IFDEF LINUX}or O_SYNC{$ENDIF});
   Result := (fpfsync(hDrive) = 0);
   fpClose(hDrive);
 end ;
{$ENDIF}

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

 

Fiz pequenas modificações nessa unit para não afetar usuários Linux

{$ELSE}
 function FlushFileToDisk(sFile: string): boolean;
 var
   hDrive: THandle;
 begin
   hDrive := fpOpen(sFile, O_Creat or O_RDWR {$IFDEF LINUX}or O_SYNC{$ENDIF});
   Result := (fpfsync(hDrive) = 0);
   fpClose(hDrive);
 end ;
{$ENDIF}

 

Ótimo! Com certeza é bem mais prudente que simplesmente ignorar o argumento O_SYNC.... rsrsrs

 

Não sei se você chegou  a ver esta parte do código da unidade ../Fontes/ACBrNFe2/libxmlsec.pas

{$IFDEF WIN32}
  LIBXMLSEC_SO = 'libxmlsec.dll';
{$ELSE}
  LIBXMLSEC_SO = 'libxmlsec.so';
{$ENDIF}

Acho que poderia ser alterado para:

{$IFDEF WIN32}
  LIBXMLSEC_SO = 'libxmlsec.dll';
{$ENDIF}
{$IFDEF LINUX}
  LIBXMLSEC_SO = 'libxmlsec1.so';
{$ENDIF}
{$IFDEF DARWIN}
  LIBXMLSEC_SO = 'libxmlsec1.dylib'    
{$ENDIF}

Assim, os usuários do Linux e do Mac estariam dispensados de fazer links simbólicos, haja vista que são criados links com essas nomenclaturas independentes de serem instalados automaticamente ou manualmente e ainda independente das versões (subversões) das bibliotecas.

 

A mesma ideia pode ser utilizada também em libxslt.pas e libxml2.pas ambos em ../Fontes/ACBrNFe2.

 

É claro que é uma bobagem mínima que pode ser facilmente contornada com a criação de links, mas fica a ideia.

 

Att.

 

Messias Henrique

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Essa Unit é do projeto Libxml2Pascal

 

http://sourceforge.net/projects/libxml2-pas/

 

Vou verificar se existem atualizações para ela...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • 11 meses depois ...

Messias, 

 

Desculpa se posto em um assunto já resolvido, mas chegaste a instalar a NFe no lazarus do Mac OS X? Caso afirmativo chegaste a tentar instalar o modulo de conhecimentos eletrônicos? Há dois dias atras eu resolvi usar o lazarus ao invés do Xcode pois acredito que seja mais fácil utilizar a ACBr que já usei há alguns anos atras em delphi para um cliente que utilizava windows mesmo que tenha que programar em pascal novamente ao invés de ObjectiveC apesar de achar o Xcode melhor para programar que o pascal. Então baixei o fpc-2.6.2.intel.macosx.dmg (+ o source desta versão) e o lazarus 1.2.0-2014-03-01-i386-macosx.dmg, baixei ainda os componentes Fortes Report, Zeos e o ACBr via svn, todos os componentes com exceção do ACBr foram tranquilos de instalar, o ACBr comum, diversos, sintegra e boletos também não apresentou problemas, mas quando cheguei no componente NFe tomei um baile para instalar, era tanta confusão pois estou usando o mavericks e maioria das bibliotecas estão na arquitetura de 64 bits enquanto que o lazarus estava tentando utilizar a arquitetura i386 para as bibliotecas. consegui finalmente compilar e instalar o pacote NFe, agora só falta o conhecimento eletrônico, ele por alguma razão ainda quer abrir alguma unidade para controle activeX. Eu acredito que isso seja somente para o windows, ainda não achei em que parte ele tenta incluir esta unit nem por que não está em um ifdef windows somente.

 

Enquanto eu tentava resolver o problema para instalar eu fui removendo todo o código que não era para mac, todas as diretivas para windows e linux, não mexi em nenhuma função ou coisa parecida, ainda não testei para ver se funciona normalmente, pois ainda nem criei o código para esse cliente. 

 

Se o pessoal da lista já conseguiu instalar a NFe então reabri este post por nada, mas caso ainda não instalaram acho que seria mais fácil eu te passar um passo a passo das bibliotecas que compilei e diretivas para gerar na arquitetura i386 e tudo mais do que passar minhas modificações uma vez que eu apaguei diretivas Windows/Linux.

 

[] Krahe

Link para o comentário
Compartilhar em outros sites

Messias,

 

Consegui achar onde estavam as inserções da Unit ActiveX, realmente não se encontrava em nenhuma diretiva {ifdef} eu simplesmente tirei elas e consegui instalar a CTe.

 

Agora testar e esperar que não de nenhum problema.

Link para o comentário
Compartilhar em outros sites

Olá, Krahe!

 

Que bom que você consegui instalar o ACBrCTe!

 

Eu não precisei dele até o momento então nunca havia tentado instalá-lo.

 

Sobre o ACBrNFe eu passei pelas mesmas dificuldades que você... Sofri demais mesmo... exatamente por conta da arquitetura das bibliotecas.

Também uso o Mavericks e naturalmente ele já tem algumas libs em 64bits e quando se compila sem algumas instrução extra elas são geradas em 64bits e, enquanto isso, o Lazarus fica buscando as libs em 32bits.

 

No entanto eu descobri que é possível, no Mac OS X ,fazer uma mesclagem de um biblioteca 32bits com a mesma biblioteca em 64bits (usando o LIPO) aí você tem um lib mista. Isso foi ótimo... Só assim consegui instalar o ACBrNFe, porém esse não foi o fim dos problemas.

 

Quando fui fazer testes de utilização, esbarrei no problema da assinatura... a função que realizava a assinatura não era encontrada na lib... Fiz de tudo, mas não consegui resolver da maneira "politicamente correta"... Então apelei para uma chamada ao executável do "xmlsec1" e fiz a assinatura por debaixo dos panos...

 

No final eu vi que tinha feito tantas modificações no componente que estava inviável compatibilizar com outras plataformas (S.O.'s). Logo, nem tive coragem de mencionar aqui no fórum rsrsrs.

 

Não sei se você chegou ater esses problemas de assinatura do xml. Se tiver e encontrar uma solução melhor, adoraria saber...

 

Ah! Não sei como você resolveu a questão das libs (32bits)... Se fez igual eu fiz...

Talvez podeŕiamos alinhar as nossa soluções e conseguir tratar dentro de diretivas específicas para o DARWIN, assim seria possível manter o mesmo código do componente oficial...

 

Vou voltar a mexer na bagunça que fiz em breve... Talvez olhando novamente vejo uma solução mais razoável...

 

Vou torcer para que os componentes que você instalou funcionem perfeitamente. E se assim ocorrer, gostaria de saber como compilou as libs (principalmente a libxmlsec), ok?

 

[]'s  Messias Henrique

Editado por messiashenrique
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 958 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...