Author Topic: Icefact pentru BSD Unix  (Read 550 times)

sepromsrl

  • Newbie
  • *
  • Posts: 6
    • View Profile
Icefact pentru BSD Unix
« on: September 22, 2023, 11:31:54 AM »
Buna ziua,

In firma folosim Unix OpenBSD si FreeBSD de prin 1993, serverul nostru fiind un dinozaur mare cat vreo 3 sifoniere de-ale bunicilor: un sistem PDP11/44 mai precis cel fabricat la Bucuresti denumit Coral 4030.
Dihania cu pricina ruleaza strict Unix BSD din simplul motiv ca de aproape 30 de ani nu avem absolut nici o treaba cu nici un fel de factor perturbator informatic: "dulapu" habar n-are cum sa raspunda la solicitarile de atac/penetrare.
Terminalele de lucru pot fi orice sistem de tip desktop, in general Sun Sparc64 (imun la toate nebuniile), Raspberry Pi (imun + foarte economic) si sisteme pentru oameni normali la cap precum Intel/AMD dar dupa verificarea amanuntita a UEFI si cu aceeasi restrictie: BSD.

Majoritatea programelor Linux functioneaza pe *BSD fara probleme intrucat partea de emulatie lucreaza mai bine decat sistemul linux nativ. Exemplu: Stim cu totii ca fratii Larry si Andy Wachowski (acuma le zice altfel) au creat filmele din seria Matrix. Dar efortul din spate a fost imens:  randarea tuturor scenelor grafice a fost facuta cu programul specializat Pixar Renderman - varianta Linux - pe un sistem de calcul distribuit format din vreo 30 de calculatoare "Intel Pentium 2" ruland Unix FreeBSD, toate avand activat emulatorul de Linux. Toata activitatea a durat vreo 2 saptamani si le-a iesit din prima.
Cu functionarea "normala" pe Linux au avut probleme mari si din cand in cand pe la 60%...70% din activitate programul raporta frumos de tot "segmentation fault". Concluzia lor dupa vreo 2 luni de dat cu capul de pereti si scos peri albi: in anumite conditii speciale, restranse, neobisnuite pentru utilizatorul de rand, Linuxul emulat de FreeBSD functioneaza si corect si mai bine decat.... Linuxul propriu-zis.

Revenind la zilele noastre, de cand au implementat suportul pentru nuclee multiple (multi-core), emulatorul de Linux a ramas un pic in urma in sensul ca programului rulat i se poate aloca strict un singur nucleu si functioneaza mai... incet.

Cu scuzele de rigoare, cu iertare pentru fragmentul de istorie + vesnica pomenire a dinozaurilor si cu argument clar ca in firma nu-l bag nici pe Linux si nici pe opera de arta a lui Billy cel Rau, as dori sa va intreb: 

Programul Icefact poate fi compilat pentru Unix FreeBSD 13?   
Bineinteles cu plata licentei si a efortului.

Pentru arhitectura x64. Fara "ARM", "Sun Sparc64" sau "PDP Alpha". Avem construite cateva placi de extensie Qbus (un fel de PCI-express de acum 50 de ani) care suporta arhitecturile "x86" + "x64". Asadar "sifonierul" e in stare sa ruleze orice program linux care nu impune capabilitati grafice importante: libreoffice, opera, xcalc si asa mai departe.

Detalii despre dinozauru de la noi din firma precum si ceva poze gasiti cautand pe google dupa numele de utilizator, se acceseaza saitul firmei si sectiunea "servicii speciale electronica/IT".

Cu respect, va multumesc pentru amabilitate.
« Last Edit: September 22, 2023, 11:41:28 AM by sepromsrl »

Serghei

  • Administrator
  • Hero Member
  • *****
  • Posts: 1472
    • View Profile
Re: Icefact pentru BSD Unix
« Reply #1 on: September 22, 2023, 11:42:21 AM »
Buna ziua,

Interesanta poveste, nu mi-ar fi trecut prin cap ca mai exista vreun PDP in productie :)

In principiu, da, si IceFact Server si clientul IceFact poate fi compilat pentru orice *nix care are suport pentru X11.

Ce nu mi-e clar este ce anume doriti sa fie portat, partea de server sau partea de client? Cum rulati clientul, aveti statii de lucru cu freebsd? Sau il rulati remote prin X11?

sepromsrl

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: Icefact pentru BSD Unix
« Reply #2 on: September 22, 2023, 10:31:00 PM »
Functionarea la nivel software este in felul urmator: X11 este distribuit. Coralul ("sifonierele PDP") stie doar mod text, asadar ruleaza partea de x11-server. Sistemul este OpenBSD versiunea 4.8, una din ultimele variante care il mai suporta. Asta administreaza tot. Buteaza de pe unitate de banda magnetica cu 9 piste.

Statiile de lucru sunt in numar de 4 (patru) si buteaza ori FreeBSD, ori OpenBSD prin retea, puse la dispozitie de Coral pe protocolul BOOTP/DHCP de pe cate o alta unitate de banda magnetica separata (alte doua sifoniere). Ele ruleaza clientul de X11, comunica cu serverul x11 din "sifonier" pe porturile 6000 - 6010 si deseneaza pe ecran ce hotaraste "Maria Sa".

   Fiecare statie are sesiunea ei individuala de desktop grafic. Ca 'window manager' merg toate cu Windowmaker - e foarte prietenos cu memoria RAM a Coralului. In schimb tot ce inseamna decoratii si efecte speciale se intampla la nivel local.
Detalii mai multe precum restrictii de memorie, containere (*BSD le numeste 'puscarii' / 'jail'), de ce arata ca un sac de box virtual si ce nebunii "a la Tom&Jerry" il mai apuca, va pot povesti doar face-2-face.

Ar fi frumos daca pentru inceput si clientul si serverul ar putea fi compilate pentru FreeBSD/amd64.

Later edit
La nivel hardware el mai are doua placi periferice "qbus / intel pentium 4": una e alocata pentru birou si cealalta pentru controlul productiei. Tot ce au in comun este ca buteaza ce le este pus la dispozitie pe banda din "magnetofon" - adica la fel ca statiile de lucru.

Intre timp am descarcat 'icefact' si pentru Ubuntu si pentru Fedora. FreeBSD/x64 (de pe una din placile de extensie) spune ca nu poate rula pe nici unul pentru ca nu are disponibile aceleasi versiuni de librarii. Daca le inlocuiesc cu cele specifice versiunii de Linux pe care a fost compilat icefact, am probleme cu productia.  Intre timp o sa instalez pe undeva intr-un virtualbox de curiozitate sa vad cum functioneaza sistemul creat de dvs.

Code: [Select]
skaarj@service:~ % uname -a
FreeBSD service.seprom.ro 13.2-RELEASE FreeBSD 13.2-RELEASE releng/13.2 GENERIC amd64
skaarj@service:~ % ./icefact
./icefact: /lib64/libz.so.1: version `ZLIB_1.2.9' not found (required by ./icefact)
./icefact: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by ./icefact)
./icefact: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./icefact)
./icefact: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by ./icefact)
./icefact: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./icefact)
./icefact: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./icefact)
./icefact: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./icefact)
./icefact: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by ./icefact)
./icefact: /lib64/libc.so.6: version `GLIBC_2.26' not found (required by ./icefact)
./icefact: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by ./icefact)
skaarj@service:~ %
« Last Edit: September 22, 2023, 11:27:33 PM by sepromsrl »

Serghei

  • Administrator
  • Hero Member
  • *****
  • Posts: 1472
    • View Profile
Re: Icefact pentru BSD Unix
« Reply #3 on: September 23, 2023, 12:59:17 PM »
Ok, am înțeles ideea. În principiu s-ar putea realiza o portare pe FreeBSD 13.2, dar procesul este destul de laborios si consumator de timp, deci și costurile asociate vor fi corespunzătoare. Probabil nu scăpați fără 1000 ~ 2000 RON + TVA (în funcție de eventualele probleme care ar putea apărea la compilarea dependențelor / aplicației în sine).

sepromsrl

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: Icefact pentru BSD Unix
« Reply #4 on: September 23, 2023, 09:19:52 PM »
E normal, munca trebuie platita.

Acum vine intrebarea de 1000 de puncte:  pentru urcarea facturilor XML pe platforma ANAF, cumva programul se autentifica la ANAF/SPV pe baza de cheie tip dongle USB?
N-am reusit sa conving pe nici un BSD ca sa lucreze cu cheia dongle. De pe Linux ei nu garanteaza ca ar merge si nici n-am incercat. Doar de pe Windows functioneaza. Este emisa de certsign.ro.



Serghei

  • Administrator
  • Hero Member
  • *****
  • Posts: 1472
    • View Profile
Re: Icefact pentru BSD Unix
« Reply #5 on: September 24, 2023, 09:29:30 AM »
Programul nu foloseste în mod direct dongle-ul pentru a trimite facturile, ci un cod de autorizare care se obtine de la ANAF cu ajutorul dongle-ului. Codul de autorizare se poate obtine independent, pe alta masina, si copiat in baza de date a programului de facturare (sau facut un script care de pe masinia Linux sau Windows care sa faca submit la acel cod de autorizare catre baza de date). Codul de autorizare este valabil 90 de zile, deci trebuie repetata re-autorizarea IceFact-ului la fiecare 90 de zile.

Eu folosesc SafeNet eToken 5110, merge rezonabil de bine pe Linux.

sepromsrl

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: Icefact pentru BSD Unix
« Reply #6 on: September 25, 2023, 08:02:00 AM »
Cu asta m-am linistit. Tot Safenet eToken dar nu momentan nu dau de el sa vad exact si varianta.

Pun in discutie la sefi si testam varianta free de win+lin. Undeva pe la inceputul lui noiembrie revin cu cererea de oferta.

sepromsrl

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: Icefact pentru BSD Unix
« Reply #7 on: October 27, 2023, 07:36:51 AM »
Bine v-am regasit.

L-am testat in Virtualbox in varianta Ubuntu. Se misca foarte foarte rapid, tine minte si clientii, si produsele, stie sa puna si emblema firmei, este lucrat profesional. Avand in vedere ca m-am descurcat de minune cu el in timp ce sunau nonstop telefoanele - deci n-am reusit deloc sa ma uit prin documentatie - programul e minunat. Imi place foarte mult.

Va rog frumos, putem demara procedura?
Momentan pentru FreeBSD/amd64.  Dupa ce ne familiarizam cu el, o sa va solicit si pentru OpenBSD dar asta e poveste pentru la anul.

In principiu nu imi trebuie iconita pe desktop ca sa dau clic cu mausul pe ea. Nici sa apara prin vreo lista de aplicatii gestionata de "consumatorii de RAM" gnome/kde. Doar linie de comanda:  deschid terminalul, scriu "icefact" si lanseaza programul, iar "icefactd" il pun eu sa fie lansat automat la pornirea sistemului.
Ce intra in mod normal (linux) in /usr/...., in free/openBSD trebuie sa intre in /usr/local/....
Exemplu: Icefact trebuie sa stea in /usr/local/bin,  icefactd sta in /usr/local/libexec.  Librariile se duc in /usr/local/lib.
Ce intra in mod normal sub linux in /usr/share/applications, in freebsd+openbsd se duc in /usr/local/share/applications - asta in cazul in care cumva in viitor va apare prin cine stie ce minune vreun gnome/KDE.
/usr/local intra in backup periodic pentru ca acolo se duce tot ce e instalat in plus peste instalarea "curata".
Systemd nu exista. Scriptul de pornire/oprire se duce in /usr/local/etc/rc.d iar cu asta va asist eu.
La fel va pot asista cu instalarea lui FreeBSD in masina virtualbox. Am facut un set complet de scripturi pentru rulat dupa instalarea "curata" a sistemului - modificat fisiere de configurare si descarcat pachetele.

Ce n-am reusit in icefact(ubuntu) - recunosc, testul a durat vreo 10 minute sub stres maxim:
  • (de testat in continuare) - programul poate identifica serverul CUPS sa poata scoate la imprimanta? Mai incerc, s-ar putea sa n-am cups activat pe ubuntu;
  • (de testat in continuare) - cumva programul poate exporta automat factura in PDF folosind un sablon de denumire? Eventual sa ruleze un script extern .sh caruia sa ii paseze parametri? de exemplu sa le urce pe undeva (ftp server de backup cu ip, user, pass, sau partitie share) impreuna cu fisierul xml/setul de fisiere xml, sau sa le zbor catre unitatea de banda magnetica.
    Exemplu de denumire:
    numar de ordine_data_[FF, FPF, CH]_nume client_suma[_CASH].pdf:  FF=factura, FPF=factura proforma, CH=chitanta,_CASH daca a fost platit in cash si s-a emis chitanta.
    141_30.10.2023_FF_821_Gigi_SRL_30.00_lei_CASH.pdf  - factura platita;
    141_30.10.2023_FPF_14_Gigi_SRL_30.00_lei.pdf - factura proforma;
    141_30.10.2023_CH_24_Gigi_SRL_30.00_lei_CASH.pdf - chitanta.
      Sintaxa asta o folosesc pentru denumirea clara a fisierelor si ma ajuta mult in cazul in care mai face figuri vreun hard-disc si trebuie sa ii fac recuperare de date. Momentan procedura asta o facem manual pentru fiecare factura si merge tare greu;
  • butonul "javascript" inchide automat programul;
  • nu reusesc sa gasesc meniul unde trebuie configurat accesul (ip, masca) catre icefactd;
  • nu reusesc sa gasesc meniul unde se seteaza parametrii de autentificare catre icefactd.


In concluzie va rog pregatiti hartiile si va rog dati-mi mesaj privat cu adresa de mail unde va pot contacta pentru plasarea cererii de oferta.

Cu respect, multumesc mult.
« Last Edit: October 27, 2023, 10:45:29 PM by sepromsrl »

Serghei

  • Administrator
  • Hero Member
  • *****
  • Posts: 1472
    • View Profile
Re: Icefact pentru BSD Unix
« Reply #8 on: October 31, 2023, 12:11:54 PM »
Buna ziua,

O să trebuiască să amânam un pic proiectul, că va trebui să ne concentrăm momentan pe efactura și alte câteva chestii importante. Aduceți-mi aminte cândva anul viitor.

sepromsrl

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: Icefact pentru BSD Unix
« Reply #9 on: November 06, 2023, 11:54:03 PM »
OK... atunci ramane pentru anul viitor. Dar imi place mai mult varianta dumneavoastra decat ceea ce incerc eu sa programez (si nu-mi iese) in intefata veche, modul text.

Cu respect.