memory-leaks

Still reachable: lots of words in many pages.
git clone https://git.kevinlegouguec.net/memory-leaks
Log | Files | Refs | README | LICENSE

opensuse.org (4747B)


      1 * Packages
      2 … that took me more than one minute to find.
      3 ** spell-checking
      4 - hunspell
      5 - myspell-fr_FR
      6 * HOWTO
      7 ** Disks
      8 *** Auto-mount second disk under =$HOME/media=
      9 #+begin_example
     10 $ lsblk --fs
     11 […]
     12 nvme0n1
     13 └─nvme0n1p1 xfs                […UUID…]
     14 $ sudo $edit /etc/fstab
     15 [… add:
     16 UUID=[…UUID…]   […$HOME…]/media         xfs     user,exec       0  0
     17 …]
     18 $ mkdir ~/media
     19 $ mount ~/media
     20 #+end_example
     21 ** Multimedia
     22 *** Get more codecs
     23 Today's symptoms:
     24 - mpv warns about missing =eac3=,
     25 - video plays without sound.
     26 
     27 I used to follow the openSUSE wiki advice to [[https://en.opensuse.org/SDB:Installing_codecs_from_Packman_repositories][install missing codecs]],
     28 but over the years I grew tired of baby-sitting zypper through its
     29 panic attacks whenever Packman lags a bit behind Factory, so today
     30 (2026-04-06) I finally snapped, and went & found out how hard
     31 recompiling ffmpeg with those missing codecs actually is.
     32 
     33 "Exceedingly simple", turns out?  YMMV; the usual war of =./configure=
     34 attrition:
     35 
     36 - could have leveraged ~zypper source-install --build-deps-only~ to
     37   install dependencies, but I worry that it overfits & makes future
     38   upgrades more difficult (e.g. installing =python3𝓎-foo=, eventually
     39   leading to more zypper panics when Tumbleweed drops 3.𝓎);
     40 
     41 - ffmpeg defaults to building static libraries, must explicitly
     42   =--enable-shared= (*and* =--enable-pic=, which surprised me: with
     43   only =--enable-shared=, =configure= does include =-fPIC= in
     44   =C*FLAGS=, but the final links fail; without much conviction, tried
     45   both after seeing [[https://build.opensuse.org/projects/openSUSE:Factory/packages/ffmpeg-7/files/ffmpeg-7.spec][openSUSE does it too]] and lo! that worked).
     46 
     47 #+begin_src sh
     48 git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
     49 cd ffmpeg
     50 sudo zypper install nasm
     51 ./configure --enable-pic --enable-shared --disable-static --prefix=$PWD/.build/install
     52 make -j8
     53 make install
     54 #+end_src
     55 
     56 The dynamic loader was unhappy when running mpv though:
     57 
     58 #+begin_example
     59 $ ldd $(which mpv)
     60 /usr/bin/mpv: […prefix…]/lib/libswscale.so.9: version `LIBSWSCALE_9.5_SUSE' not found (required by /usr/bin/mpv)
     61 /usr/bin/mpv: […prefix…]/lib/libswresample.so.6: version `LIBSWRESAMPLE_6.3_SUSE' not found (required by /usr/bin/mpv)
     62 /usr/bin/mpv: […prefix…]/lib/libavdevice.so.62: version `LIBAVDEVICE_62.3_SUSE' not found (required by /usr/bin/mpv)
     63 /usr/bin/mpv: […prefix…]/lib/libavfilter.so.11: version `LIBAVFILTER_11.14_SUSE' not found (required by /usr/bin/mpv)
     64 /usr/bin/mpv: […prefix…]/lib/libavformat.so.62: version `LIBAVFORMAT_62.12_SUSE' not found (required by /usr/bin/mpv)
     65 /usr/bin/mpv: […prefix…]/lib/libavcodec.so.62: version `LIBAVCODEC_62.28_SUSE' not found (required by /usr/bin/mpv)
     66 /usr/bin/mpv: […prefix…]/lib/libavutil.so.60: version `LIBAVUTIL_60.26_SUSE' not found (required by /usr/bin/mpv)
     67 #+end_example
     68 
     69 /This can only mean one thing/ 😀
     70 
     71 #+begin_src sh
     72 git clone https://github.com/mpv-player/mpv
     73 cd mpv
     74 export PKG_CONFIG_PATH=…/ffmpeg/.build/install/lib/pkgconfig
     75 sudo zypper install libplacebo-devel
     76 sudo zypper install libass-devel
     77 meson setup build
     78 meson configure build
     79 meson compile -C build
     80 #+end_src
     81 
     82 meson chose to add a =DT_RUNPATH= entry referencing the ffmpeg
     83 installation prefix found with pkg-config, so I can just run
     84 =build/mpv= and enjoy my media's audio in all its E-AC-3 glory.
     85 ** Network
     86 *** Open ports
     87 #+begin_src sh
     88 $ firewall-cmd --add-port=8000/tcp
     89 $ firewall-cmd --add-service=mdns
     90 #+end_src
     91 To make permanent, either:
     92 - run the command with =--permanent=, and restart ~firewalld~ for
     93   immediate application,
     94 - run the command /a second time/ with =--permanent=,
     95 - run ~firewall-cmd --runtime-to-permanent~.
     96 ** Software
     97 *** Disable Akonadi
     98 Takes up RAM, clutters htop; no use for it.
     99 **** 🙅 via configuration? (symptom)
    100 1. ~akonadictl stop~
    101 2. set =StartServer=false= in =~/.config/akonadi/akonadiserverrc=.
    102 
    103 Gave up at step 2: that file already existed, had some =[Sections]=,
    104 and I was too lazy to look up where =StartServer= should go.
    105 **** 🙅 via reading [[https://userbase.kde.org/Akonadi#Disabling_the_Akonadi_subsystem][the docs]]?
    106 Insist on the /Digital Clock/ widget being a likely culprit, but the
    107 /Calendar Events/ option (as it is spelled here) is unchecked.
    108 **** 🙅 via uninstallation?
    109 ~zypper remove --clean-deps akonadi~ shows some collaterals (sqlite3).
    110 **** 🙆 via configuration? (cause)
    111 Kudos [[https://unix.stackexchange.com/questions/725548/kde-plasma-prevent-akonadi-stuff-from-being-launched-at-startup][MC68020]] for finding the culprit - kalendarac is the auto-started
    112 service that loads Akonadi.  Suppress with =Hidden=True= in
    113 =${XDG_CONFIG_HOME:-~/.config}/autostart/org.kde.kalendarac.desktop=.