Making Simple Graphical Linux Distro from Scratch

Поділитися
Вставка
  • Опубліковано 22 гру 2024

КОМЕНТАРІ • 177

  • @jyothishkumar3098
    @jyothishkumar3098 10 місяців тому +109

    The cursor trails are probably due to Nano-X running in Framebuffer mode. I observed that the mouse trails over the window disappear when the window is repainted. The trails are due to the background not being repainted as the mouse is moved.
    The window itself doesn't leave any traces when moved though. So it's just the mouse cursor that lacks integration with the window management.

    • @nirlichtman
      @nirlichtman  10 місяців тому +19

      Interesting point 👍

    • @fabrilluviaofficial
      @fabrilluviaofficial 10 місяців тому +4

      how can i fix it?

    • @jyothishkumar3098
      @jyothishkumar3098 8 місяців тому

      ​​@@fabrilluviaofficial 7:07 pick the config.linux-X11 file instead of config.linux-fb.

    • @jyothishkumar3098
      @jyothishkumar3098 8 місяців тому +4

      @@fabrilluviaofficial At 7:07, choose the X11 option. My last reply got removed for some reason.

    • @fabrilluviaofficial
      @fabrilluviaofficial 8 місяців тому

      @@jyothishkumar3098 ok, thx a lot

  • @pixobit5882
    @pixobit5882 10 місяців тому +28

    It is shockingly simple to create your own distro. Iv'e always thought, that it is super difficult and LFS was the only option to create a custom distro.
    Really nice tutorial! I'm gonna try to create my own distro later.
    Keep up making simple and amazing videos like this!

  • @8ack2Lobby
    @8ack2Lobby 10 місяців тому +203

    lets go! I can see hundreds of new distros flooding in after this video 😂

    • @Aryan-de9jw
      @Aryan-de9jw 10 місяців тому +7

      :))

    • @knghtbrd
      @knghtbrd 8 місяців тому +3

      Yup, all the vegan crossfitter zennials who run Arch BTW, all use a tiling WM, think it's appropriate for config files to be literal C source code, insist the "cat" command shouldn't exist even when it's a shell builtin, and call anyone 5 years older than them or more is a "boomer"… Those people, AND YOU KNOW WHO YOU ARE, are all gonna be running their own custom microdistributions real soon. 🤣
      I actually did LinuxFromScratch once before some of the above-mentioned children were born. Obviously the system is bigger now and more complex due to cgroups, systemd, EFI (which didn't exist in the real world back then), etc. But it's probably gotten less complex to build. Just more to understand now.

    • @ADarnSmore
      @ADarnSmore 8 місяців тому +6

      @@knghtbrd how do you know a linux user isn't running arch? they'll immediately start complaining about arch users before you even say anything.

    • @4t0mic57
      @4t0mic57 8 місяців тому +7

      @@knghtbrd what did `cat` ever do to you? qwq

    • @deudz
      @deudz 5 місяців тому

      @@4t0mic57 less better cat

  • @faithinverity8523
    @faithinverity8523 10 місяців тому +8

    Yesterday I freaked out because I watched your video about creating a non-graphical system. And now this! You redefine what kool is.

  • @RocktCityTim
    @RocktCityTim 10 місяців тому +52

    Excellent example of how we don't all need a fully bloated Linux distro to do real work. Thanks, Nir!

    • @Blob-qo5iq
      @Blob-qo5iq 5 місяців тому

      At this point you should use stuff like Debian Server (no desktop environment) or Debian with Xfce. Both are very very lightweight, not bloated but their apt repositories is very nice, has a lot of useful stuff and are just easier to use

  • @kieferhendricks6680
    @kieferhendricks6680 10 місяців тому +4

    Great videos, man! I've done two of your projects so far and have learned so much from them. Keep up the great work!

  • @fabrilluviaofficial
    @fabrilluviaofficial 10 місяців тому +4

    hello nir, i was doing the past tutorial of busybox to make a simple linux distro, and now, I watch at my laptop, at your channel, and i found this 💎. unbelievable. thx for so much

    • @Nunya58294
      @Nunya58294 10 місяців тому +1

      You'll have a blast good sir

  • @marcusk7855
    @marcusk7855 10 місяців тому +8

    What a great video. I have absolutely no use for this but I'm going to follow along and built it myself too.

  • @patrickprucha5522
    @patrickprucha5522 10 місяців тому +9

    very cool! I think im going to try it too. Cheers.
    BTW i love your vids!

  • @fr0xk
    @fr0xk 2 місяці тому +1

    I like you meritorious this channel is, no ideological bullshit, just gets job done

  • @benarcher372
    @benarcher372 10 місяців тому +6

    We all love tutorials like this!

  • @mrsofanthiel
    @mrsofanthiel 10 місяців тому +3

    Pro tip: To make Cirrus an integrated part of the kernel, you need to make CONFIG_DRM integrated as well.
    Also, in the .config file (visible with ls -a), don't forget to replace the Certs part:
    #
    # Certificates for signature checking
    #
    CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
    CONFIG_SYSTEM_TRUSTED_KEYRING=y
    CONFIG_SYSTEM_TRUSTED_KEYS=""
    CONFIG_SYSTEM_EXTRA_CERTIFICATE=y
    CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE=4096
    CONFIG_SECONDARY_TRUSTED_KEYRING=y
    CONFIG_SYSTEM_BLACKLIST_KEYRING=y
    CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
    CONFIG_SYSTEM_REVOCATION_LIST=y
    CONFIG_SYSTEM_REVOCATION_KEYS=""
    # end of Certificates for signature checking
    This should work in most circumstances. The main difference with this config is that it doesn't use canonical's certs.

  • @Artimis.depressed
    @Artimis.depressed 7 місяців тому

    Amazing, from your old non-graphical distro you already earned a subscriber but this is double as cool, if i could subscribe to you twice i would.

  • @spacewolfjr
    @spacewolfjr 10 місяців тому +4

    Awesome video, thanks!

  • @fakestiv
    @fakestiv 7 місяців тому +2

    Nice to see that you read the comment on the last linux distro video and actually explained what the end result would be at the begonning

  • @suzukiaccess5022
    @suzukiaccess5022 10 місяців тому

    @nirlichtman the X Window System is supposed to have a complete and transparent separation between the XServer part and the client application part. However, in most cases, both run the same machine so it is never clear how the two components works. Now that you came one tutorial with NanoX and an earlier with writing an X11 application, could you take a shot at a tutorial that clearly demonstrates the two parts? A machine that only implements the XServer part and connects over network to another machine that strictly implements the Client application part.

    • @nirlichtman
      @nirlichtman  10 місяців тому

      That is a good idea for next video :)

  • @jak2k
    @jak2k 10 місяців тому +6

    How is that theme called that you use to mimic the look of windows?

    • @nirlichtman
      @nirlichtman  10 місяців тому +6

      😂 I use Windows 10, it's not a theme

    • @tablettablete186
      @tablettablete186 10 місяців тому +2

      @@nirlichtman Lol

    • @robinpage2730
      @robinpage2730 6 місяців тому

      @@nirlichtman so you're building the distro in a vm?

    • @danframe02
      @danframe02 6 місяців тому

      @@robinpage2730 He's using Docker to run a Debian container on Windows

    • @Pauli1505
      @Pauli1505 4 місяці тому

      @@robinpage2730 no he uses wsl

  • @Pauli1505
    @Pauli1505 4 місяці тому

    if you get a "cannot initialise keyboard!" error, it means you probably use a different nanox config, in your config, you need to put a valid mouse and keyboard driver in "MOUSE" and "KEYBOARD". using the fbe config, scankbd and DEVMICEMOUSE wont work like in the normal config, you can use things like usb drivers.

  • @arduinoguru7233
    @arduinoguru7233 10 місяців тому

    Brilliant, this isn't looks that complicated compare what I thought

  • @Nunya58294
    @Nunya58294 10 місяців тому +1

    This is really good for beginners who want their own OS or distro but don't quite have the knowledge for it; Well done!

  • @leapbtw
    @leapbtw 10 місяців тому +2

    dropped everything i was doing to watch this lol nice content

  • @wiseskeshom4673
    @wiseskeshom4673 10 місяців тому

    Wow, What a great video. Thanks a lot for teaching us these cool stuff. 😊😊

  • @user-3bs8jd83js
    @user-3bs8jd83js 9 місяців тому +1

    Additional info: while make menuconfig, you can directly press y, n, or m, instead of pressing `space` again and again.

    • @darkraven4207
      @darkraven4207 7 місяців тому

      Can you please guide me at the start of the video on CMD he ran very first command when i tried to do the same on my CMD windows 10 it says "docker is not recognized as an internal ....."
      On which platform should I build this?

  • @divyeshpatel9103
    @divyeshpatel9103 6 місяців тому

    Very well defined tutorial 👌 Thank you.

  • @Gkcrafting
    @Gkcrafting 8 місяців тому +1

    I Had no trouble setting up Nano-X, but when trying to start the server (`nano-X`), I get an error saying: "Cannot initialize keyboard".
    I wonder why it does that and how can I fix it?
    Also, I want to use SDL2 on fullscreen with KMS/DRM, how can I do that? I can't find any helpful ressources online.

  • @NetBSDToaster-u8e
    @NetBSDToaster-u8e 9 місяців тому +2

    Awesome stuff!

  • @reyuki-i
    @reyuki-i 8 місяців тому

    15:44 why you use /dev/sda instead of / ? I confuse because in the previous video, the root parameter is /

    • @Pauli1505
      @Pauli1505 4 місяці тому

      he was chooing /dev/sda, because its the root filesystem partition to install it on

  • @TheAio
    @TheAio 8 місяців тому +1

    If im not mistaken, wasn't xz-utils recently part of a major exploit? Would it still be safe to use xz-utils?

  • @TheodorMoroianu
    @TheodorMoroianu 4 місяці тому

    What shell is beging ran? I don't understand when /bin/sh, /bin/bash or similar were installed on the system.
    Also, when was /bin/ls installed?

  • @EzhikOFF13
    @EzhikOFF13 8 місяців тому +2

    i understood only a half but still great video thanks man

  • @reyuki-i
    @reyuki-i 8 місяців тому

    13:10 what's the difference between dd and truncate?

    • @nirlichtman
      @nirlichtman  8 місяців тому +1

      truncate is more intuitive for the use case in the video, it also has additional advantages, one of the comments on my previous distro from scratch vid suggested its use and elaborates more on this

  • @Quan-um4np
    @Quan-um4np Місяць тому

    what is the mix keyboard. I don't no that, because i'm newbie

  • @manofacertainrage856
    @manofacertainrage856 8 місяців тому

    When starting in qemu, I'm getting an endless stream of "can't open /dev/ttyX: No such file or directory" The X is 1 to 4. What did I miss?

    • @nirlichtman
      @nirlichtman  8 місяців тому +1

      Sounds like you forgot to create the directories for the root file system, there are a couple I create in the video, including /dev

  • @h4rlystesh491
    @h4rlystesh491 7 місяців тому

    How difficult to add package manager for this distro? For example pacman or nix.

  • @TheMLXProj-Linux
    @TheMLXProj-Linux 5 місяців тому +1

    can you share kernel config files? Or modified kernel image?
    Thanks...

  • @IdioticMath
    @IdioticMath 10 місяців тому +2

    how would you add smth like git to this? Would it be to /usr and binaries?

    • @theSoberSobber
      @theSoberSobber 10 місяців тому +2

      same way you added nanox man, they are just packages, any package needs itself (the binary), and the shared libs it might depend on (.a or .so's), more often than not they'll have a `make install` or similar.

    • @IdioticMath
      @IdioticMath 10 місяців тому

      @@theSoberSobber thanks man

  • @Lucy-Luc-Lu-L
    @Lucy-Luc-Lu-L 10 місяців тому +1

    Hey Nir. Thanks for the video! If possible, please suggest workarounds and stuff for M1 chip users

    • @nirlichtman
      @nirlichtman  10 місяців тому +2

      I plan on making a video in the future about making a distro for Raspberry Pi, since it is also ARM, it may be helpful for M1 as well

    • @pastaya
      @pastaya 9 місяців тому

      asahi linux kernel

  • @bob-007
    @bob-007 10 місяців тому +3

    thx nice video.
    I was inspired to create a simple BusyBox distro with networking.
    Every time I try post a link or ref, my post seems to get removed. 😭

    • @bob-007
      @bob-007 10 місяців тому +1

      GitHub EN10/BusyBoxLinux

  • @skydivertyler
    @skydivertyler 8 місяців тому

    Would this have been affected by the XZ/Libzma backdoor vulnerability?

  • @bramfran4326
    @bramfran4326 10 місяців тому

    This looks hard, very very interesting video nonetheless!

  • @sirk3v
    @sirk3v 10 місяців тому +3

    any chance you could do one on making android custom rom?

    • @nirlichtman
      @nirlichtman  10 місяців тому +3

      That could be interesting, I'll consider that for a future video, I think it should be possible to do it pretty quickly using buildroot

    • @Quadalarm
      @Quadalarm 10 місяців тому

      @@nirlichtman So far I know, you have to use software or packages to build it for every smartphone separately. How difficult is it to get these packages or software?

    • @comosaycomosah
      @comosaycomosah 10 місяців тому

      it would be cool to see a custom rom build i havent thought about grapheneos and the like for awhile but wanna play with some soon @@nirlichtman

  • @maksimmuruev423
    @maksimmuruev423 10 місяців тому

    How we should trust guy with windows in linux setup?

  • @rmassink
    @rmassink 10 місяців тому

    Pretty cool, but I could not help but notice you copied libc and some other libs from the debian docker distro instead of compiling them from source. Which is fine of course, but why not compile those too, if you go the length of compiling busybox and nanox. Or do you recon that would be a video in itself, to show how to link all programs against a source-build libc version?

  • @krnlexception
    @krnlexception 10 місяців тому +1

    can i replace nanox with full x11 or wayland?

    • @pastaya
      @pastaya 10 місяців тому

      you can but more complicated

  • @rickybarabba7866
    @rickybarabba7866 10 місяців тому

    Thanks for sharing. Just subscribed.

  • @pesadelo9539
    @pesadelo9539 5 місяців тому

    HOW THAT I CAN SEARCH MOUSEDEV?

  • @chrisxdeboy
    @chrisxdeboy 10 місяців тому +1

    Think you could do a FreeBSD version?

    • @nirlichtman
      @nirlichtman  10 місяців тому +2

      Yes, that is a good idea :)

    • @chrisxdeboy
      @chrisxdeboy 10 місяців тому

      @nirlichtman he'll yeha! I've kinda wanted to make my own FreeBSD "distro" with a focus on being easy enough for Grandma to use, but powerful enough that you'd want to.

    • @chrisxdeboy
      @chrisxdeboy 10 місяців тому

      @nirlichtman well, I gave you a subscribe in case you do make a video on it!

    • @chrisxdeboy
      @chrisxdeboy 10 місяців тому

      @@nirlichtman Also, and I hope I'm not bothering you, would it be possible for you to go over, in general, how one includes programs into their distro, like the overall idea?

    • @nirlichtman
      @nirlichtman  9 місяців тому +1

      Yah I will cover that in the FreeBSD distro video :)

  • @antoniobarbalau1107
    @antoniobarbalau1107 10 місяців тому

    wow this is amazing

  • @Dan-Levi
    @Dan-Levi 10 місяців тому +1

    Very cool! Is it possible to include chromium-browser (gpu accelerated?) and automatically start it in kiosk mode for a specific website?

    • @qqwui9989
      @qqwui9989 10 місяців тому +2

      This is based on Nano-x which is severely limited in functionality. It cant run chromium and definitely doesnt havr gpu acceleration

    • @Dan-Levi
      @Dan-Levi 10 місяців тому

      Thanks, saved me the time to try and fail 😀

    • @nirlichtman
      @nirlichtman  10 місяців тому +1

      Yah Chromium would probably be quite complicated to port but it can run Dillo which is a basic text/css web browser

    • @ovi1326
      @ovi1326 10 місяців тому

      You could also just use xorg x11 instead of nanox. Or even go for a wayland compositor instead which might be a notch simpler (I'm thinking gamescope or sway)

    • @sys935
      @sys935 10 місяців тому

      Better localhost / localfile where src.html folder in localdisk to work offline/online

  • @ДангуолеРасалайте-м4у
    @ДангуолеРасалайте-м4у 10 місяців тому +2

    Drink every time nir says actually

    • @nirlichtman
      @nirlichtman  10 місяців тому

      Actually, I didn't notice that 😂

  • @Ooohhnvfykknjjhyfcvjiuffhhhhhh
    @Ooohhnvfykknjjhyfcvjiuffhhhhhh 10 місяців тому +1

    Is it possible to install a de in the os?

    • @mrsofanthiel
      @mrsofanthiel 10 місяців тому

      Probably, but you may need to tinker around a bit. If you can get your hands on the NanoLinux source code, then I would start looking in there for an implementation that will most likely work best.

  • @ItsCOMMANDer_
    @ItsCOMMANDer_ 2 місяці тому

    idk why, but graphics dont work for me

  • @guestsneezeplayz
    @guestsneezeplayz 5 місяців тому

    i keep on getting an issue in QEMU that img is not bootable

  • @davidenglish3801
    @davidenglish3801 10 місяців тому

    I will run it on my Android device to learn how it works, by termux. May it's possible by using X11-termux close as you did.

  • @18sohamkulkarni95
    @18sohamkulkarni95 7 місяців тому

    This is very cool but how to add a config file syslinux.cfg in this process??

    • @Pauli1505
      @Pauli1505 4 місяці тому

      right b4 you do the mnt umount thing, before building the image you get a change to add a syslinux.cfg

  • @Alectro.superioruser
    @Alectro.superioruser 5 місяців тому

    About TWM please.

  • @Jaspinik
    @Jaspinik 10 місяців тому +7

    You skipped the hardest part, internet connectivity 🤣.

  • @dj.yacine
    @dj.yacine 10 місяців тому +1

    Wee want more high quality content like this 😊

  • @AZIZ-bc6xb
    @AZIZ-bc6xb 10 місяців тому +1

    what did you choose as a specialty after the first years in college computer science so you can understand and making distro ? i like ur content btw

    • @nirlichtman
      @nirlichtman  10 місяців тому +2

      Thanks! I am actually now on my first year in college, these kinds of stuff I learned by myself for fun, programming is my hobby from a young age.

  • @xhalved
    @xhalved 10 місяців тому

    Could it be possible to make a package system for a distro like this?

    • @nirlichtman
      @nirlichtman  10 місяців тому

      Yes, there a bunch of existing options for example using the Alpine package manager which is called apk-tools or maybe opkg, I may make a video in the future about making a distro with a package manager.

  • @Paolog_
    @Paolog_ 10 місяців тому

    Very Cool !!!
    I'm asking myself how do you know all this things.
    And can you make a tuto of making a mini-DE for Linux?

    • @nirlichtman
      @nirlichtman  10 місяців тому

      Yes, I plan on eventually making a video in the future about setting up either Xorg or a Wayland Compositor and with that a desktop environment as well

    • @Paolog_
      @Paolog_ 9 місяців тому

      Very cool!!!

  • @StickyGeek
    @StickyGeek 5 місяців тому

    docker isnt working

  • @ahmedabuharthieh579
    @ahmedabuharthieh579 10 місяців тому

    Amazing work

  • @ewof
    @ewof 10 місяців тому

    what keyboard/mouse do u use

    • @nirlichtman
      @nirlichtman  9 місяців тому +1

      My mouse is Microsoft Intellimouse Optical and my keyboard is DELL SK-8110 (but when I am recording videos I use a more quite keyboard)

  • @fabiosarts
    @fabiosarts 10 місяців тому

    If you are using an actual linux distro for it, you can use fakeroot to simulate being root, it's pretty useful when creating the initrd for example C:

  • @AK11020
    @AK11020 10 місяців тому +1

    Without sounding too puritanical, curious as to why you're doing this from a Windows desktop instead of Linux

    • @maxscott3349
      @maxscott3349 10 місяців тому +2

      I don't know but it's really nice that so many of these tools have been ported to Windows so you can do stuff like this on a Windows machine. There's a lot of times where it comes in handy

    • @nirlichtman
      @nirlichtman  10 місяців тому +1

      My main computer is Windows and I find it comfortable to work with WSL and Docker when I need Linux stuff, more info on the welcome link on my channel

  • @mzakyr342
    @mzakyr342 10 місяців тому +1

    finally, yeah baby

  • @milasudril
    @milasudril 8 місяців тому

    LFS spends a lot of steps on the host before the target is bootable. Can we keep going from busybox and nanox as a way to get self-hosting earlier?

  • @rullypratama
    @rullypratama 10 місяців тому +4

    Making a GUI Linux distro in Windows? Sounds legit.

  • @satr14-tech
    @satr14-tech 10 місяців тому +1

    make a sequel where you can actually do programming in this with someting like gcc, nasm, python, or any modern language bcuz this could have a lot of extensibility on the os

    • @komram4396
      @komram4396 10 місяців тому

      Yeah, the real shit starts when you add a compiler.

  • @tzebruh
    @tzebruh 10 місяців тому

    yo! i've been waiting for this one!

  • @TunifyBasic
    @TunifyBasic 10 місяців тому +3

    need some automation.

  • @guilherme5094
    @guilherme5094 10 місяців тому

    👍👍Nice!!

  • @SirChristoferus
    @SirChristoferus 5 місяців тому

    Thanks for the tutorial, I’ve been thinking about building something like this with a Git-based script acting as the package manager. Through aliased terminal commands, the script would pull non-conflicting packages from stable and secure Git branches.

  • @gustawitresh
    @gustawitresh 10 місяців тому

    excellent video

  • @beetledjuice3062
    @beetledjuice3062 10 місяців тому

    Awesome

  • @reyuki-i
    @reyuki-i 8 місяців тому

    nice video!

  • @jackkendall6420
    @jackkendall6420 10 місяців тому +1

    chad behaviour

  • @DanielOliveiraViolao
    @DanielOliveiraViolao 3 місяці тому

    Noice!

  • @caretchara
    @caretchara 10 місяців тому

    hell yeah

  • @azrael-labs
    @azrael-labs 10 місяців тому

    Bro...
    I gonna make the ultimate gaming distro out of this, starts with a console, opens a graphical application when demanded

  • @PewPewCricket
    @PewPewCricket 4 місяці тому

    busybox wont build on newer kernels :D cool!

  • @officialtetronome
    @officialtetronome 5 місяців тому

    instructions unclear: kernel fails to compile on line 1934

    • @Pauli1505
      @Pauli1505 4 місяці тому

      u need to use docker because of the filesystem using it on a normal native system doesnt work

  • @iamnotmega
    @iamnotmega 10 місяців тому

    HOW THE FUCK DO I WRITE IN THE CONFIG FILE

  • @GameBacardi
    @GameBacardi 10 місяців тому

    👌

  • @objectiveSquid
    @objectiveSquid 6 місяців тому

    NOOOO HE HAS RECALL INSTALLED😭😭😭

  • @Vednier
    @Vednier 10 місяців тому

    Building Linux distro from Windows. Yeah, rright.

    • @PAFBEAST
      @PAFBEAST 9 місяців тому

      He using wsl which literally is Linux lol

    • @Vednier
      @Vednier 9 місяців тому

      @@PAFBEAST "WSL is Linux" is so Microsoft...

    • @PAFBEAST
      @PAFBEAST 9 місяців тому

      @@Vednier Linux in Microsoft...

    • @feltmacaroon389
      @feltmacaroon389 8 місяців тому +1

      @@PAFBEAST No, it's not WSL, it's Docker.

    • @PAFBEAST
      @PAFBEAST 8 місяців тому

      @@feltmacaroon389 its not

  • @bluescorpian
    @bluescorpian 10 місяців тому +1

    Why you using windows lol?

  • @moshixmainframechannel
    @moshixmainframechannel 10 місяців тому

    Yofi !

  • @theSoberSobber
    @theSoberSobber 10 місяців тому +6

    using nanoX is cheating :((
    make one with xooooorrrggggg :(

    • @nirlichtman
      @nirlichtman  10 місяців тому +2

      I tried Xorg, Weston and Sway beforehand and they all had very convoluted build and setup. There is also tinyx which comes from Tiny Core Linux but I couldn't get it to build. When I will have more time I might come back to this and try again since this is interesting :)

  • @Zeitgeistpionier
    @Zeitgeistpionier 10 місяців тому

    Schade, dass du nicht erklärst, was du tust.

  • @venkysoftwarehardwarecreat2683
    @venkysoftwarehardwarecreat2683 10 місяців тому

    🎉super𓽤

  • @theiaproject3467
    @theiaproject3467 8 місяців тому +3

    "xz-utils" bum

  • @ronilichtman5176
    @ronilichtman5176 10 місяців тому

    This is awesome!