Tag: Tinkering

Stuff I attempt to fix or improve.

  • Guacamole – Day 2.5

    Guacamole – Day 2.5

    Ok, back at it. I’m starting at the dependencies section in the Guacamole manual here. I think I’ll just use this page to build the command to make things easy. I probably already have a bunch of these installed, but apt will sort that out for me. Much quicker than stare and compare. I’m pretty much installing all required and optional dependencies. The optional ones I know I need are for RDP, VNC, and SSH support. I’m not sure if I’ll ever use telenet, session recording, or audio over VNC, but it’s nice to have the option.

    $ sudo apt install libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin \
    uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev \
    freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev \
    libwebsockets-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev

    And this is what I got. The dependencies have dependencies, which also have dependencies, and those dependencies also have dependencies… I should have just gone with docker, but I’m only working with 100 GB of space, and I need that extra ~1 ms of speed I get from bare metal.

    cweb@thecweb:~$ sudo apt install libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin \
    uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev \
    freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev \
    libwebsockets-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev
    [sudo] password for cweb:
    
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    
    The following packages were automatically installed and are no longer required:
      libasn1-8-heimdal libcommon-sense-perl libffi7 libgssapi3-heimdal libhcrypto4-heimdal
      libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libicu66 libjson-perl libjson-xs-perl
      libkrb5-26-heimdal libldap-2.4-2 libllvm10 libllvm14 libroken18-heimdal libtypes-serialiser-perl
      libwind0-heimdal sysstat
    Use 'sudo apt autoremove' to remove them.
    
    The following additional packages will be installed:
      autoconf automake autotools-dev cpp cpp-11 gcc gcc-11 gcc-11-base gir1.2-freedesktop
      gir1.2-harfbuzz-0.0 gir1.2-pango-1.0 i965-va-driver icu-devtools intel-media-va-driver libaacs0
      libasan6 libasyncns0 libatomic1 libavcodec58 libavformat58 libavutil56 libbdplus0 libblkid-dev
      libbluray2 libbrotli-dev libc-dev-bin libc-devtools libc6-dev libcairo-gobject2
      libcairo-script-interpreter2 libcairo2 libcap-dev libcc1-0 libchromaprint1 libcodec2-1.0
      libcrypt-dev libdatrie-dev libdatrie1 libev-dev libev4 libevent-2.1-7 libexpat1-dev libffi-dev
      libflac8 libfontconfig-dev libfontconfig1-dev libfreerdp-client2-2 libfreerdp-server2-2
      libfreerdp-shadow-subsystem2-2 libfreerdp-shadow2-2 libfreerdp2-2 libfreetype-dev libfreetype6-dev
      libfribidi-dev libgcc-11-dev libgcrypt20-dev libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin
      libgdk-pixbuf2.0-common libglib2.0-dev libglib2.0-dev-bin libgme0 libgmp-dev libgmpxx4ldbl
      libgnutls-dane0 libgnutls-openssl27 libgnutls28-dev libgnutlsxx28 libgpg-error-dev libgraphite2-dev
      libgsm1 libharfbuzz-dev libharfbuzz-gobject0 libharfbuzz-icu0 libice-dev libicu-dev libidn2-dev
      libigdgmm12 libisl23 libitm1 liblsan0 libltdl-dev liblzo2-dev libmfx1 libmount-dev libmp3lame0
      libmpc3 libmpg123-0 libnorm1 libnsl-dev libogg-dev libogg0 libopenmpt0 libopus0 libp11-kit-dev
      libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpangoxft-1.0-0 libpcre16-3 libpcre2-16-0
      libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpgm-5.3-0
      libpixman-1-0 libpixman-1-dev libpng-tools libpthread-stubs0-dev libpulse-mainloop-glib0 libpulse0
      libquadmath0 librabbitmq4 librsvg2-2 librsvg2-common libsasl2-dev libselinux1-dev libsepol-dev
      libshine3 libsm-dev libsnappy1v5 libsndfile1 libsoxr0 libspeex1 libsrt1.4-gnutls libssh-gcrypt-4
      libssh2-1 libswresample-dev libswresample3 libswscale5 libtasn1-6-dev libtasn1-doc libtelnet2
      libthai-data libthai-dev libthai0 libtheora0 libtirpc-dev libtool libtsan0 libtwolame0 libubsan1
      libudfread0 libunbound8 libuv1 libuv1-dev libva-drm2 libva-x11-2 libva2 libvdpau1 libvncclient1
      libvncserver1 libvorbis0a libvorbisenc2 libvorbisfile3 libvpx7 libwebsockets16 libwinpr-tools2-2
      libwinpr2-2 libwinpr2-dev libx11-dev libx264-163 libxau-dev libxcb-render0 libxcb-render0-dev
      libxcb-shm0-dev libxcb1-dev libxdamage1 libxdmcp-dev libxext-dev libxft-dev libxrender-dev
      libxvidcore4 libzmq5 libzvbi-common libzvbi0 linux-libc-dev m4 manpages-dev mesa-va-drivers
      mesa-vdpau-drivers nettle-dev ocl-icd-libopencl1 pango1.0-tools pkg-config rpcsvc-proto
      va-driver-all vdpau-driver-all winpr-utils x11proto-dev xorg-sgml-doctools xtrans-dev zlib1g-dev
    
    Suggested packages:
      autoconf-archive gnu-standards autoconf-doc gettext cpp-doc gcc-11-locales gcc-multilib make flex
      bison gdb gcc-doc gcc-11-multilib gcc-11-doc i965-va-driver-shaders libcuda1 libnvcuvid1
      libnvidia-encode1 libbluray-bdj glibc-doc libcairo2-doc libdatrie-doc freerdp2-x11 freetype2-doc
      libgcrypt20-doc libgirepository1.0-dev libglib2.0-doc libxml2-utils gmp-doc libgmp10-doc libmpfr-dev
      dns-root-data gnutls-bin gnutls-doc libgraphite2-utils libice-doc icu-doc libtool-doc opus-tools
      p11-kit-doc libpango1.0-doc pulseaudio librsvg2-bin libsm-doc speex libssl-doc libtelnet-utils
      libthai-doc gfortran | fortran95-compiler gcj-jdk libx11-doc libxcb-doc libxext-doc m4-doc
      opencl-icd graphicsmagick dpkg-dev libvdpau-va-gl1
    
    The following NEW packages will be installed:
      autoconf automake autotools-dev cpp cpp-11 freerdp2-dev gcc gcc-11 gcc-11-base gir1.2-freedesktop
      gir1.2-harfbuzz-0.0 gir1.2-pango-1.0 i965-va-driver icu-devtools intel-media-va-driver libaacs0
      libasan6 libasyncns0 libatomic1 libavcodec-dev libavcodec58 libavformat-dev libavformat58
      libavutil-dev libavutil56 libbdplus0 libblkid-dev libbluray2 libbrotli-dev libc-dev-bin
      libc-devtools libc6-dev libcairo-gobject2 libcairo-script-interpreter2 libcairo2 libcairo2-dev
      libcap-dev libcc1-0 libchromaprint1 libcodec2-1.0 libcrypt-dev libdatrie-dev libdatrie1 libev-dev
      libev4 libevent-2.1-7 libexpat1-dev libffi-dev libflac8 libfontconfig-dev libfontconfig1-dev
      libfreerdp-client2-2 libfreerdp-server2-2 libfreerdp-shadow-subsystem2-2 libfreerdp-shadow2-2
      libfreerdp2-2 libfreetype-dev libfreetype6-dev libfribidi-dev libgcc-11-dev libgcrypt20-dev
      libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libglib2.0-dev libglib2.0-dev-bin
      libgme0 libgmp-dev libgmpxx4ldbl libgnutls-dane0 libgnutls-openssl27 libgnutls28-dev libgnutlsxx28
      libgpg-error-dev libgraphite2-dev libgsm1 libharfbuzz-dev libharfbuzz-gobject0 libharfbuzz-icu0
      libice-dev libicu-dev libidn2-dev libigdgmm12 libisl23 libitm1 libjpeg-turbo8-dev liblsan0
      libltdl-dev liblzo2-dev libmfx1 libmount-dev libmp3lame0 libmpc3 libmpg123-0 libnorm1 libnsl-dev
      libogg-dev libogg0 libopenmpt0 libopus0 libp11-kit-dev libpango-1.0-0 libpango1.0-dev
      libpangocairo-1.0-0 libpangoft2-1.0-0 libpangoxft-1.0-0 libpcre16-3 libpcre2-16-0 libpcre2-32-0
      libpcre2-dev libpcre2-posix3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpgm-5.3-0 libpixman-1-0
      libpixman-1-dev libpng-dev libpng-tools libpthread-stubs0-dev libpulse-dev libpulse-mainloop-glib0
      libpulse0 libquadmath0 librabbitmq4 librsvg2-2 librsvg2-common libsasl2-dev libselinux1-dev
      libsepol-dev libshine3 libsm-dev libsnappy1v5 libsndfile1 libsoxr0 libspeex1 libsrt1.4-gnutls
      libssh-gcrypt-4 libssh2-1 libssh2-1-dev libssl-dev libswresample-dev libswresample3 libswscale-dev
      libswscale5 libtasn1-6-dev libtasn1-doc libtelnet-dev libtelnet2 libthai-data libthai-dev libthai0
      libtheora0 libtirpc-dev libtool libtool-bin libtsan0 libtwolame0 libubsan1 libudfread0 libunbound8
      libuv1 libuv1-dev libva-drm2 libva-x11-2 libva2 libvdpau1 libvncclient1 libvncserver-dev
      libvncserver1 libvorbis-dev libvorbis0a libvorbisenc2 libvorbisfile3 libvpx7 libwebp-dev
      libwebsockets-dev libwebsockets16 libwinpr-tools2-2 libwinpr2-2 libwinpr2-dev libx11-dev libx264-163
      libxau-dev libxcb-render0 libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxdamage1 libxdmcp-dev
      libxext-dev libxft-dev libxrender-dev libxvidcore4 libzmq5 libzvbi-common libzvbi0 linux-libc-dev m4
      manpages-dev mesa-va-drivers mesa-vdpau-drivers nettle-dev ocl-icd-libopencl1 pango1.0-tools
      pkg-config rpcsvc-proto uuid-dev va-driver-all vdpau-driver-all winpr-utils x11proto-dev
      xorg-sgml-doctools xtrans-dev zlib1g-dev
    0 upgraded, 215 newly installed, 0 to remove and 0 not upgraded.
    Need to get 130 MB/131 MB of archives.
    After this operation, 459 MB of additional disk space will be used.
    Do you want to continue? [Y/n]

    Huh, guess I didn’t have any of them already installed.

    Better get the suggested packages also. I can always remove them later.

    $ sudo apt install autoconf-archive gnu-standards autoconf-doc gettext \
    cpp-doc gcc-11-locales gcc-multilib make flex bison gdb gcc-doc \
    gcc-11-multilib gcc-11-doc i965-va-driver-shaders \
    libbluray-bdj glibc-doc libcairo2-doc libdatrie-doc \
    freerdp2-x11 freetype2-doc libgcrypt20-doc libgirepository1.0-dev \
    libglib2.0-doc libxml2-utils gmp-doc libgmp10-doc libmpfr-dev dns-root-data \
    gnutls-bin gnutls-doc libgraphite2-utils libice-doc icu-doc libtool-doc \ 
    speex libssl-doc libtelnet-utils libthai-doc gfortran \
    libx11-doc libxcb-doc libxext-doc m4-doc graphicsmagick \
    dpkg-dev libvdpau-va-gl1

    I had to remove like ten packages from the suggested list because apt couldn’t find them. Crap I didn’t need anyway like nvidia and cuda libraires. Wait, did I just fucking install fortran?

    Setting up gfortran-11 (11.4.0-1ubuntu1~22.04) ...
    Setting up gfortran (4:11.2.0-1ubuntu1) ...
    update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f95 (f95) in auto mode
    update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f77 (f77) in auto mode
    Processing triggers for libc-bin (2.35-0ubuntu3.8) ...

    Guess so…

    It’s quarter past ten at night and I’m tired and hungry. And if installing packages was this much of a pain then I really don’t want to start compiling Guacamole from source right now. Glancing over what I’ve wrote it really doesn’t look like it took that long, but there was a lot of trial and error figuring out which packages Ubuntu didn’t have. Probably would have been quicker to just add the nvidia repository instead of playing wack-a-mole by removing the packages one by one. But that would have messed up my pure FOSS system with that evil closed source nvidia software.

    Peace! I’m out!

    I truly do love anyone who bothers reading this crap.
  • Guacamole – Day 2

    Guacamole – Day 2

    So… Now that I’m back at it I can load the test page but the highlighted links give me a Tomcat 404 error page, so something is wrong. I found this guide to setting up Tomcat on Ubuntu LTS 22 here. First I need to a user setup in /etc/tomcat9/tomcat-users.xml.

    </tomcat-users>
            <role rolename="admin-gui"/>
    
            <role rolename="manager-gui"/>
    
            <user username="tomcat" password="pass" roles="admin-gui,manager-gui"/>

    That should do the ticket for testing purposes. So ‘systemctl restart tomcat9’ and see what we get!

    Nope. Still 404. I browsed through the server.xml config file and didn’t see anything wrong… Maybe I should confirm those files actually exist. I checked /var/www but nothing there, although I did notice that for some reason all users had write access to /var/www/thecweb.com (which is something a fucking moron would do if they ran into a permissions issue setting up their website…) So ‘chmod go-w thecweb.com’.

    Back to tomcat! After some googling to find out where the missing files should be on disk I found that they simply weren’t in /usr/share like they should be. And ‘apt list –installed | grep tomcat’ finally gave me my answer!

    cweb@thecweb:/var/lib/tomcat9/webapps/ROOT/META-INF$ apt list --installed | grep tomcat
    
    WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
    
    libtomcat9-java/jammy-updates,now 9.0.58-1ubuntu0.1 all [installed,automatic]
    tomcat9-common/jammy-updates,now 9.0.58-1ubuntu0.1 all [installed,automatic]
    tomcat9/jammy-updates,now 9.0.58-1ubuntu0.1 all [installed]
    

    I somehow only managed to install tomcat9 and tomcat9-common packages. So I installed the missing packages and voila!

    I’m going to take a break for now, but there is a small change I’ll jump back in later. It’s only 1 pm… And I’d like to get this running before my next work week starts.

  • Guacamole – Day 1

    Guacamole – Day 1

    To setup Apache Guacamole I’ll be following the install guide here:

    https://guacamole.apache.org/doc/gug/installing-guacamole.html

    Looks like the first step is to have a working Java Servlet, which I don’t have. I’m going with Apache Tomcat as it’s been around forever so there is lots of documentation. Also, Ubuntu has package files which always makes things easier.

    ‘apt search tomcat’ shows me that Tomcat 9 is the version that Ubuntu has included with LTS 22. So I’ll just do ‘apt install tomcat9’, and see how far that gets me.

    The following NEW packages will be installed:
      ca-certificates-java default-jre-headless java-common libeclipse-jdt-core-java libgraphite2-3 libharfbuzz0b libpcsclite1 libtcnative-1 libtomcat9-java openjdk-11-jre-headless tomcat9 tomcat9-common
    0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.

    That gets me the above packages, and once that install is finished, I’m going to install the suggested packages. They all look useful…

    Suggested packages:
      default-jre pcscd libnss-mdns fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic tomcat9-admin tomcat9-docs tomcat9-examples tomcat9-user

    After that finished I confirm that Tomcat is running with ‘systemctl status tomcat9’, and then point my browser to the webserver’s internal IP on port 8080 and I see this lovely message.

    That was much easier than I expected. I think that’s it for day one as it’s 6 am and I’m almost done with my shift.

  • Site is back up!

    Looking at the logs it’s been down since October 22, 2023. I’m not sure if that is when my fiber IP changed, or when the line from the fiber jack to the router in the basement broke. The line quite working right before I had to work from home, so I just put the wifi router directly into the fiber jack so I could work, and I just yesterday got around to fixing that. I ended up just replacing RJ45 connectors on both ends of the cable.

    After the box was back on the internet, I updated my current public IP with namecheap and started running updates on Ubuntu. I didn’t realize when you run ‘apt upgrade’ that it will move you to the latest LTS version, so I spent about half an hour figuring out why Apache would not start. Turns out one of the several warning messages I clicked through was telling me it was going to install PHP 8.1, and remove 7.6. Since I made sure to tell it not to update any of my config files, this caused Apache to crash when trying to start. I just had to disable the old module and enable the new one.

    So the site is back up but just a quick run through certbot and it’s secure again too!

    All this is in preparation for me to setup Apache Guacamole on the site. This should allow be to get around all the filtering at work so I can remote into my home computer and work on things I can’t on my work PC. My next post will probably be about setting that up. It i fairly complicated. No prebuilt apt packages.

  • The Site is Back

    I finally bought a new router to keep the site up. My old one kept breaking the firewall rule, so the sure had been offline for months. I bought an Asus this time. Wifi 6, whatever that is.

  • Site has been down

    I’ve been trying to figure out why my SSL cert wouldn’t renew with certbot. I haven’t put much effort into it until today. Turns out my router wasn’t actually forwarding ports, so the site was completely down. I of course could load it locally, and didn’t realize it wasn’t on the internet. lol. Simple fix, I had to delete the port forwarding entries and re-add them. I hope that doesn’t mean my router is getting too old, but I wouldn’t be surprised.

  • Russian

    Russian

    No wonder we don’t understand each other. Damn fools got an n for a p, and a p for an r.

    Duolingo my dingo
  • Reason a billion for why I hate iOS.

    Reason a billion for why I hate iOS.

    If you delete too many message threads, it’ll display them as bubbles instead of a list. It doesn’t appear to be something I can change.

  • Basement

    Basement

    Posts are installed and the dinning room is way more level. Note I did not say level, just more level. Hundred year old house, blah blah blah.

    I saw white duct tape at the drug store and grabbed it right after they finished, so this happened. Not sure if I’ll leave it, or add more.