GNU Guix 1.4 pakketbehearder en distribΓΊsje basearre op it binne beskikber

Бостоялся Ρ€Π΅Π»ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° GNU Guix 1.4 ΠΈ построСнного Π½Π° Π΅Π³ΠΎ основС дистрибутива GNU/Linux. Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сформированы ΠΎΠ±Ρ€Π°Π·Ρ‹ для установки Π½Π° USB Flash (814 ΠœΠ‘) ΠΈ использования Π² систСмах Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (1.1 Π“Π‘). ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ… i686, x86_64, Power9, armv7 ΠΈ aarch64.

De distribΓΊsje lit ynstallaasje sawol as in stand-alone OS yn virtualisaasjesystemen, yn konteners en op konvinsjonele apparatuer, en kin wurde lansearre yn al ynstalleare GNU/Linux-distribΓΊsjes, fungearje as platfoarm foar it ynsetten fan applikaasjes. De brΓ»ker wurdt foarsjoen fan sokke funksjes lykas rekken hΓ’ldend mei Γ΄fhinklikens, werhelle builds, wurkje sΓ»nder root, weromrollen nei eardere ferzjes yn gefal fan problemen, konfiguraasjebehear, klonearjen fan omjouwings (meitsje in krekte kopy fan 'e software-omjouwing op oare kompjΓ»ters), ensfh. .

Wichtichste ynnovaasjes:

  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ окруТСниями. На смСну ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Β«guix environmentΒ» ΠΏΡ€ΠΈΡˆΠ»Π° новая ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«guix shellΒ», которая позволяСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сборочныС окруТСния для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π½ΠΎ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ окруТСния для ознакомлСния с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Π±Π΅Π· отраТСния Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ ΠΈ Π±Π΅Π· выполнСния Β«guix installΒ». НапримСр, для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ запуска ΠΈΠ³Ρ€Ρ‹ supertuxkart ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Β«guix shell supertuxkart β€” supertuxkartΒ». ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ сохранён Π² кэшС ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запуск Π½Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ извлСчСния.

    Для упрощСния Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΉ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² Β«guix shellΒ» прСдоставлСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² guix.scm ΠΈ manifest.scm с описаниСм состава окруТСния (для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ опция Β«β€”export-manifestΒ»). Для создания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… эмулируСтся классичСская иСрархия систСмных ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π² Β«guix shellΒ» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ Β«β€”container β€”emulate-fhsΒ».

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«guix homeΒ» для управлСния домашним ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Guix позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ домашнСго окруТСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, сСрвисы ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ„Π°ΠΉΠ»Ρ‹. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«guix homeΒ» экзСмпляры описанного домашнСго окруТСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ воссозданы Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ $HOME ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для пСрСноса своСго окруТСния Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«guix packΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция Β«-f debΒ» для создания ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… deb-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ установлСны Π² Debian.
  • Для создания Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² систСмных ΠΎΠ±Ρ€Π°Π·ΠΎΠ² (raw, QCOW2, ISO8660 CD/DVD, Docker ΠΈ WSL2) ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«guix system imageΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, Ρ€Π°Π·Π΄Π΅Π»Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму для создаваСмого ΠΎΠ±Ρ€Π°Π·Π°.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для сборки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция Β«β€”tuneΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ процСссора, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ спСцифичныС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° Π½ΠΎΠ²Ρ‹Ρ… CPU AMD ΠΈ Intel ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ задСйствованы SIMD-инструкции AVX-512).
  • Π’ инсталляторС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ для автоматичСского сохранСния Π²Π°ΠΆΠ½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² случаС Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ установки.
  • Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΎ врСмя запуска ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, благодаря Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡŽ кэша ΠΏΡ€ΠΈ динамичСском связывании, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ систСмным Π²Ρ‹Π·ΠΎΠ²Π°ΠΌ stat ΠΈ open ΠΏΡ€ΠΈ поискС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.
  • ЗадСйствован Π½ΠΎΠ²Ρ‹ΠΉ выпуск систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ GNU Shepherd 0.9 , Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° концСпция Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… сСрвисов (transient) ΠΈ появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания сСрвисов, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ сСтСвой активности (Π² стилС systemd socket activation).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ интСрфСйс для задания Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ€Π°Π·Π΄Π΅Π»Π° ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.
  • ΠŸΠ΅Ρ€Π΅Π΄Π΅Π»Π°Π½ интСрфСйс для задания статичСской сСтСвой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ прСдлагаСтся Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΎΠ³ настроСк Π² стилС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ip.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ 15 Π½ΠΎΠ²Ρ‹Ρ… систСмных сСрвисов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Jami, Samba, fail2ban ΠΈ Gitile.
  • Π—Π°ΠΏΡƒΡ‰Π΅Π½ сайт packages.guix.gnu.org для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ.
  • ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ вСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² 6573 ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 5311 Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ вСрсии GNOME 42, Qt 6, GCC 12.2.0, Glibc 2.33, Xfce 4.16, Linux-libre 6.0.10, LibreOffice 7.4.3.2, Emacs 28.2. Π£Π΄Π°Π»Π΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ 500 ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Python 2.

GNU Guix 1.4 pakketbehearder en distribΓΊsje basearre op it binne beskikber

Lit ΓΊs Γ»nthΓ’lde dat de GNU Guix-pakketbehearder basearre is op 'e Γ»ntjouwings fan it Nix-projekt en, neist typyske pakketbehearfunksjes, stipet funksjes lykas it ΓΊtfieren fan transaksje-updates, de mooglikheid om updates werom te rΓ΄ljen, wurkje sΓ»nder superuser-privileges te krijen, stipe profilen keppele oan yndividuele brΓ»kers, de mooglikheid om tagelyk ferskate ferzjes fan ien programma te ynstallearjen, ark foar garbage collection (identifisearje en fuortsmite fan net brΓ»kte ferzjes fan pakketten). Om tapassing build senario en pakket formaasje regels te definiearjen, wurdt foarsteld in gebrΓ»k in spesjalisearre hege nivo domein-spesifike taal en Guile Scheme API komponinten, wΓͺrmei jo te fieren alle pakket behear operaasjes yn de funksjonele programmeartaal Scheme.

De mooglikheid om pakketten te brΓ»ken dy't taret binne foar de Nix-pakketbehearder en pleatst yn it Nixpkgs-repository wurdt stipe. Neist operaasjes mei pakketten is it mooglik om skripts te meitsjen om applikaasjekonfiguraasjes te behearjen. As in pakket boud is, wurde alle Γ΄fhinklikens dy't dΓͺrmei ferbΓ»n binne automatysk ynladen en boud. It is mooglik om klearmakke binΓͺre pakketten te downloaden fan it repository of te bouwen fan boarneteksten mei alle Γ΄fhinklikens. Tools binne ymplementearre om ferzjes fan ynstalleare programma's by de tiid te hΓ’lden troch de ynstallaasje fan fernijings te organisearjen fan in eksterne repository.

De bouomjouwing foar pakketten wurdt foarme yn 'e foarm fan in kontener dy't alle komponinten befettet dy't nedich binne foar it wurkjen fan' e applikaasje, wΓͺrtroch jo in set pakketten kinne oanmeitsje dy't kinne wurkje sΓ»nder de gearstalling fan 'e basissysteemomjouwing fan' e distribΓΊsje, wΓͺryn Guix wurdt brΓ»kt as tafoeging. Ofhinklikens kinne wurde bepaald tusken Guix-pakketten troch it scannen fan identifier-hashes yn 'e ynstalleare pakkettenmap om de oanwΓͺzigens te finen fan al ynstalleare Γ΄fhinklikens. Pakketten wurde ynstalleare yn in aparte mapbeam of submap yn 'e map fan' e brΓ»ker, wΓͺrtroch it parallel kin bestean mei oare pakketbehearders en stipe foar in breed oanbod fan besteande distribΓΊsjes. Bygelyks, it pakket is ynstalleare as /nix/store/452a5978f3b1b426064a2b64a0c6f41-firefox-108.0.1/, wΓͺrby't "452a59..." de unike pakketidentifikaasje is dy't brΓ»kt wurdt foar Γ΄fhinklikensmonitoring.

Дистрибутив Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ свободныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ поставляСтся с ядром GNU Linux-Libre, ΠΎΡ‡ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌ ΠΎΡ‚ нСсвободных элСмСнтов Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ. Для сборки примСняСтся GCC 12.2. Π’ качСствС систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСрвисный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ GNU Shepherd (Π±Ρ‹Π²ΡˆΠΈΠΉ dmd), Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠ°ΠΊ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° SysV-init с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ зависимостСй. Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π΄Π΅ΠΌΠΎΠ½ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Shepherd написаны Π½Π° языкС Guile (ΠΎΠ΄Π½Π° ΠΈΠ· Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ языка Scheme), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ для опрСдСлСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запуска сСрвисов. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² консольном Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π½ΠΎ для установки ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ΠΎ 20526 Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², срСди ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ графичСского стСка Π½Π° Π±Π°Π·Π΅ X.Org, ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ dwm ΠΈ ratpoison, Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ столы GNOME ΠΈ Xfce, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΠ° графичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Boarne: opennet.ru

Add a comment