Repo Indexer - Initial Release - v1 Beta 1

Repo Indexer este programul ce am scris pentru afisarea folderelor si rpm-urile pentru http://mrb.mandrivausers.ro . Cand intrati pe linkul respectiv, vedeti practic in functiune programul.

Intregul cod este scris in PHP, HTML, CSS. Daca va fi nevoie, pe viitor va fi si un pic de JavaScript in el.

Pentru ca exista solicitare sa fie folosit si pe alte site-uri, m-am hotarat sa-l lansez ca un software separat. Astfel, l-am botezat Repo Indexer si l-am reorganizat un pic sa fie mai usor de instalat. Structura este astfel:
- index.php - fisierul de baza ce afiseaza toate cele
- _common_functions.php - functii folosite in program, separate pentru a nu incarca index.php
- repoidx_config.php - variabile prin care se pot configura diferite chestii
- default.css - CSS-ul utilizat pentru design. In afara de mici chestii, totul se poate modifica prin CSS
- fisier cu licenta

Licenta programului este GPLv3.
Tineti minte, ca este un program in stadiu Beta ... sau chiar Alpha dupa unele standarde.

Instalarea se face prin copierea fisierelor din arhiva direct in folderul ce va fi accesat prin HTTP.

Download aici: http://mrb.mandrivausers.ro/Repo_Indexer.tar.gz
Pentru asistenta dati-mi mail sau contactati-ma pe messenger (Yahoo sau Gtalk sau AIM) pe userul "patkoscsaba".

Dorinte, bugreports si toate cele pot merge ca si comentarii la acest articol.

NOTA: varianta actuala contine si o parte din "Counter"-ul de lansare mandriva. Acest counter insa nu este redistribuit in intregime ca e a celor de la MIB care nu l-au facut GPL ... de fapt nu i-au dat nici o licenta. Asa ca, counterul nu va functiona, deci va trebuiti sa comentati linia 29 din _common_functions.php care cheama "echoCounter()"

Comments

N3o's picture

Reminder|memo:

- De facut ca logo-ul din header sa actioneze si pe post de home button

- De adaugat pe prima pagina ceva gen easyurpmi. Doua casete dropdown, una pt versiune si alta pt arch si in functie de ce alege utilizatorul sa afiseze la apasarea unui bumb de refresh o lista ce contine comenzile pt adaugarea mediilor mrb.

symbianflo's picture

si acuma di cauza ta eu trebuie sa-mi editez macros-urile si sa definesc suffix-ul pe spec , adica nu mai mere cu reciclatul specurilor ghghghgh vad ca pescuiesti info direct din -i --provides
PS: fain ,chiar foarte fain codu tau felicitari sefu'
PPS: crezi ca te poti interesa daca trebuie sa specific licenta si pe spec , sau srpm-ul ia licenza sursei ,in mod automat ?( vad ca si aia o pescuiesti di pachet)
nu stiu cum e legiferata la noi chestia , cum is recunoscute versiunile de GPL si alte licente.

Mersi Csaba pt tot

http://mib.pianetalinux.org/


http://www.mandrivausers.ro/ MRB aint no shit , :p Linux user number 507107 Nu dați banii pe prostii, puneți Linux pe PISI ![ARLUG]

Unix is user-friendly. It’s just very selective about who its friends are

GPL si la noi este recunoscut la fel ca in toata Europa. Tocmai am vazut la stiri ca s-a modificat legislatia in acest sens. Mai multe detalii nu stiu acum, daca aud/vad ceva te tin la curent.

Csabi's BLOG
Linux registered user # 457717

Csabi′s BLOG

Linux registered user # 457717

maaxx's picture

Beton!
Eu acu intru pe sait dupa cateva zile si ma bucur ca citesc stirea asta. Cateva comentarii & feature request:
1. Mai bine faci un director http://mrb.mandrivausers.ro/RepoIndexer in care sa pui arhivele, a.i. sa se poata vedea toate releas-urile etc.
2. CACHING! Nu ma pricep la cod ca sa-mi pot da seama singur, dar sper ca scriptul nu cheama comanda `rpm` pt fiecare fisier .rpm de fiecare data cand pagina este accesata. Ar fi dezastruos pentru performanta pt arhive mari.
O sa mai verific maine de la munca stirea.
Oricum, bravo domnu' inginer! ;-)

Pt Symbian, IMHO ar fi bine sa fie specificate cum trebuie toate campurile din spec. Nu cred ca e mare dezastru daca's nemodificate, insa nu stiu catd e bine face la imagine.

' Zombie: "Thou canst not kill that which doth not live. But you can blast it into chunky kibbles." ' (Quake1 manual, chapter VI, section D, line 676)

' Zombie: "Thou canst not kill that which doth not live. But you can blast it into chunky kibbles." ' (Quake1 manual, chapter VI, section D, line 676)

Raspuns:
1) Da, asta asa va fi ... dar eram si sunt prea racit in acest weekend sa ma gandesc.
2) Caching, inca nu e facut, dar este luat in plan pentru urmatorul update.

Csabi's BLOG
Linux registered user # 457717

Csabi′s BLOG

Linux registered user # 457717

CACHING... nu sunt sigur ca pastrarea datelor in fisiere text si citirea lor ar fi mai rapid decat 'rpm', dar daca am putea folosi discul din RAM '/dev/shm' care este 50% din ramii computerului, ar fi o chestie. Doar la un restart la prima accesare s-ar genera in rest s-ar lua din ramdiskul sistemului. Cati rami are serverul ala?

PS: dupa un pic de gandire, de fapt ar trebui pastrat in cache doar descrierea scurta din ferestrele und e listeaza toate rpm-urile. Cand se da click pe "more" se va chema 'rpm' ca doara nu e mare scofala. Astfel vor fi max 1000 caractere adica max 1Kbytes/fisier ... sa zicem ca vom avea 10mii de pachete, tot am consumat numai 10MBytes din RAM. Cred ca este mai mult decat safe sa facem asa.

Maaxx confirma si tu ca e in regula ideea mea.

Mai mult, in cadrul programului, la accesare vreau sa se faca doar un checking si adaugare in cache in caz de nu este un pachet deja acolo.
Mentenanta la cache putem face dupa aia prin cron cu un alt script, car sa zicem, odata pe luna curata tot ce e acolo si genereaza o lista noua.

Csabi's BLOG
Linux registered user # 457717

Csabi′s BLOG

Linux registered user # 457717

symbianflo's picture

daca era sa fac asa ceva atunci mai mult de jumate di pachetele mele nu ar exista, pt simplul motiv ca producatori nu respecta rmplint din mandriva , vorbesc de toate aplicatiiile care ies acum in qt , daca mdv vrea sa le aiba , atunci tre sa schimbe o gramada de chesti in standardul mdv ,
( ex: Grup: Audio/Video e error nu warning , nu mai exista, si as putea continua pina miine) , deci daca vreti ceva din putinul care
il stiu , va trebui sa va multumiti cu pachete ne-standard
in majoritatera cazurilor,
daca ma interesa sa respect rpmlint ( scris in 2006
pt mdv 2007.0 si cirpit pe ici pe colo dupa aia ....)
adoptam pachete pe contrib XD

http://mib.pianetalinux.org/mib/


http://www.mandrivausers.ro/ MRB aint no shit , :p Linux user number 507107 Nu dați banii pe prostii, puneți Linux pe PISI ![ARLUG]

Unix is user-friendly. It’s just very selective about who its friends are

maaxx's picture

Nestiind cum sa raspund ca lumea la ce ai zis tu, am zis sa vb cu cineva din domeniu (php adica). Mi s-a sugerat ca totusi ar fi o diferenta destul de mare intre un fisier text si comanda aia; de asemenea, omu' mi-a dat o idee f buna: daca folosim un fisier txt pt cache am putea sa avem in scriptul ala si un mic search engine. De fapt, Adi a mers si mai departe si a propus folosirea sqlite.
Evident, tu esti creatorul scriptului si il faci cum vrei, dar ar fi fain sa fie cat mai optimizat (si fara dependinte mari in sistem, de ex. de tmpfs).

' Zombie: "Thou canst not kill that which doth not live. But you can blast it into chunky kibbles." ' (Quake1 manual, chapter VI, section D, line 676)

' Zombie: "Thou canst not kill that which doth not live. But you can blast it into chunky kibbles." ' (Quake1 manual, chapter VI, section D, line 676)

Si da si nu ...

Eu ma gandesc asa: Cate pachete o sa avem noi? Pai nu extrem de multe. O sa incerc sa fac o masurare, asa de curiozitate, ca eu nu vreau softul asta sa fie super-mega nu stiu ce. Vreau sa fie bun pentru noi, iar daca altcineva il considera util, bine, daca nu, nu.
Daca vroiam sa fac ceva super-serios si universal ma apucam de el cu totul altfel.

Deci, cu alte cuvinte, daca pentru noi nu se merita ca performanta sa implementez cache, nu o sa-l fac. Daca se merita, o sa fac.

In ceea ce priveste baza de date, mi se pare irosire de resurse sa il folosesti pentru cache, si daca "iti pui deoparte" asa informatii, mai intervine si problema mentenantei a acelui cache.

Nu zic, se pot face lucruri traznite ... dar nu asta e scopul meu, cel putin nu in momentul de fata.

Csabi's BLOG
Linux registered user # 457717

Csabi′s BLOG

Linux registered user # 457717

Test ...

Am copiat "main" toate cele 3mii si ceva de rpm-uri si am masurat cat dureaza sa rulez pe ele 'rpm':
[csaba@localhost main]$ echo $SECONDS; rpm -qpi ./*.rpm > /dev/null; echo $SECONDS
719
721

Deci, dureaza aproximativ 2 secunde, in conditiile in care eu rulez pe un computer obisnuit, nu server.

In plus, nu stiu daca noi vom avea vreodata 1000 (una mie) pachete in repositori-ul MRB ...

Tu ce zici? Merita efortul? Adica sa listezi 3mii de pachete in browser cu siguranta dureaza mai mult decat sa rulezi 'rpm' pe fiecare...

Csabi′s BLOG

Linux registered user # 457717

maaxx's picture

Pt cate RPM-uri sunt in MRB acum, clar nu e nevoie de cache. Eu cand vb de cache ma gandeam ca o sa pun softu si pe niscaiva mirrors (PLF e si el destul de micut, Centos deja e mare).
Serverul acela e un VPS (Xen paravirtualizat); chiar sunt curios cum se va descurca.

' Zombie: "Thou canst not kill that which doth not live. But you can blast it into chunky kibbles." ' (Quake1 manual, chapter VI, section D, line 676)

' Zombie: "Thou canst not kill that which doth not live. But you can blast it into chunky kibbles." ' (Quake1 manual, chapter VI, section D, line 676)

Da, in acest context ai dreptate si poate ca va fi nevoie de cache, dar cum am zis, eu m-am gandit mic si orientat pe nevoile noastre ... Nu pot sa fac mai multe promisiuni, pentru ca este si asa destul de mult pe capul meu, dar daca ma apuca inspiratia (asa cum a fost saptamana trecuta) o sa implementez si cache-ul asta.

Csabi's BLOGLinux registered user # 457717

Csabi′s BLOG

Linux registered user # 457717