Warning: there may be occasional oddness due to css and blog edits. **KNOWN ISSUE: possible hidden text**

Monday, May 10, 2021

New FVWM! Transition, initial steps

I have been using FVWM as my primary desktop for most of the last nearly twenty years if it has been around that long.  Within the last few years I have customized more and more of the various menus and other effects of my desktop.  I haven't configured anything too crazy, it doesn't look or act like windows, or any other desktop.  Mostly I made adjustments to how various common programs look, how their window is styled, and setup a number of conveniences in the menus or simple .fvwmrc embedded scripts.

A short time ago, I just saw FVWM3 scroll across my ports tree update output, and so I had to peek at freshports to see what it was about.  From there, I went to the FVWM3 webpage to peruse its change logs and readme files and other prliminary documentaion on the site.  One specific thing made me smile, the inclusion of a FreeBSD originated file somewhere in the mix.  The list of changes and bug fixes is quite impressive.  I have not had significant difficulties with FVWM except for struggling somewhat to include any bit of shortcut automation in the .fvwmrc file, or when any certain game needs vsync but I have no idea how to set that up or do what is needed to satisfy that complaint from the game (Veloren).

I saw mention in the commit message for FVWM3 something about M4 being left behind in favor of Go, but aside from this seeming to be about modules, I couldn't find anything more specific or descriptive about it.  The old (current FVWM2) configuration file and methods will be temporarily grandfathered in, which is very nice for the transition period.  I am mildly hesitant to switch as I have occasionally had drastic troubles with graphics in general in the past.  I can certainly maintain both builds in poudriere, and choose which one to keep installed.  This will leave me a fallback if anything catastrophic happens and I somehow cannot use FVWM3 at all, especially if it is something beyond my direct control.  My other concern is how exactly the new .fvwmrc file will be organized, structured, and how I will setup anew much of what I have now.  What I would be very pleased to see would be a more automated, transparent, or FVWM method to reach the .desktop files or similar, and how I could have any built menu reflect the up to the moment installed applications.  I tend to update software on my system as something to do, with poudriere it is much less invasive or disruptive for the most part.  There are still those rare times when something fails to build, then pkg does only half the job, removing the old but being unable to replace it with the new.  

Now we get ready to put poudriere on task to build this new FVWM3 along with the semi-standard X11 environment software for good measure and also just in case, to have a proper bulk build though quite small in comparison to my usual.  Instead, I decided to get an all-depends-list for FVWM3.  

make -C /usr/ports/x11-wm/fvwm3 all-depends-list > fvwm3-and-dependents

/usr/ports/ports-mgmt/pkg
/usr/ports/textproc/rubygem-asciidoctor
/usr/ports/lang/ruby30
/usr/ports/devel/libffi
/usr/ports/devel/ccache
/usr/ports/print/indexinfo
/usr/ports/misc/dejagnu
/usr/ports/devel/gmake
/usr/ports/lang/expect
/usr/ports/devel/autoconf
/usr/ports/devel/m4
/usr/ports/print/texinfo
/usr/ports/misc/help2man
/usr/ports/lang/perl5.32
/usr/ports/devel/p5-Locale-libintl
/usr/ports/converters/libiconv
/usr/ports/converters/p5-Text-Unidecode
/usr/ports/textproc/p5-Unicode-EastAsianWidth
/usr/ports/devel/ncurses
/usr/ports/devel/pkgconf
/usr/ports/devel/kyua
/usr/ports/devel/lutok
/usr/ports/lang/lua54
/usr/ports/devel/libedit
/usr/ports/databases/sqlite3
/usr/ports/lang/tcl86
/usr/ports/devel/autoconf-wrapper
/usr/ports/devel/automake
/usr/ports/security/libressl
/usr/ports/textproc/libyaml
/usr/ports/math/gmp
/usr/ports/devel/libunwind
/usr/ports/devel/ruby-gems
/usr/ports/lang/python39
/usr/ports/devel/readline
/usr/ports/x11/libICE
/usr/ports/x11/xorgproto
/usr/ports/devel/xorg-macros
/usr/ports/x11/xtrans
/usr/ports/x11/libX11
/usr/ports/x11/libxcb
/usr/ports/x11/xcb-proto
/usr/ports/textproc/libxml2
/usr/ports/devel/libpthread-stubs
/usr/ports/x11/libXau
/usr/ports/x11/libXdmcp
/usr/ports/x11/libXext
/usr/ports/x11/libXrandr
/usr/ports/x11/libXrender
/usr/ports/x11-toolkits/libXt
/usr/ports/x11/libSM
/usr/ports/x11/libXcursor
/usr/ports/x11/libXfixes
/usr/ports/x11-fonts/libXft
/usr/ports/print/freetype2
/usr/ports/archivers/brotli
/usr/ports/devel/libtool
/usr/ports/graphics/png
/usr/ports/x11-fonts/fontconfig
/usr/ports/devel/gperf
/usr/ports/devel/meson
/usr/ports/devel/py-setuptools
/usr/ports/devel/ninja
/usr/ports/devel/py-pytest-xdist
/usr/ports/devel/py-setuptools_scm
/usr/ports/textproc/py-toml
/usr/ports/devel/py-pytest
/usr/ports/devel/py-atomicwrites
/usr/ports/devel/py-attrs
/usr/ports/devel/py-coverage
/usr/ports/devel/py-hypothesis
/usr/ports/devel/py-sortedcontainers
/usr/ports/math/py-numpy
/usr/ports/lang/gcc10
/usr/ports/devel/binutils
/usr/ports/math/mpfr
/usr/ports/math/mpc
/usr/ports/lang/cython
/usr/ports/math/cblas
/usr/ports/math/suitesparse
/usr/ports/devel/cmake
/usr/ports/textproc/py-sphinx
/usr/ports/textproc/py-sphinxcontrib-applehelp
/usr/ports/textproc/py-sphinxcontrib-devhelp
/usr/ports/textproc/py-sphinxcontrib-jsmath
/usr/ports/textproc/py-sphinxcontrib-htmlhelp
/usr/ports/textproc/py-sphinxcontrib-serializinghtml
/usr/ports/textproc/py-sphinxcontrib-qthelp
/usr/ports/devel/py-Jinja2
/usr/ports/textproc/py-markupsafe
/usr/ports/devel/py-babel
/usr/ports/devel/py-pytz
/usr/ports/textproc/py-pygments
/usr/ports/textproc/py-docutils
/usr/ports/textproc/py-snowballstemmer
/usr/ports/textproc/py-pystemmer
/usr/ports/textproc/py-alabaster
/usr/ports/graphics/py-imagesize
/usr/ports/www/py-requests
/usr/ports/security/py-certifi
/usr/ports/textproc/py-chardet
/usr/ports/devel/py-pytest-runner
/usr/ports/dns/py-idna
/usr/ports/net/py-urllib3
/usr/ports/archivers/py-brotlipy
/usr/ports/devel/py-cffi
/usr/ports/devel/py-pycparser
/usr/ports/net/py-pysocks
/usr/ports/security/py-cryptography
/usr/ports/devel/py-six
/usr/ports/security/py-cryptography-vectors
/usr/ports/devel/py-iso8601
/usr/ports/devel/py-pretend
/usr/ports/security/py-openssl
/usr/ports/devel/py-flaky
/usr/ports/devel/py-nose
/usr/ports/devel/py-genty
/usr/ports/devel/py-mock
/usr/ports/security/ca_root_nss
/usr/ports/security/py-trustme
/usr/ports/devel/py-pytest-cov
/usr/ports/security/py-service_identity
/usr/ports/devel/py-pyasn1-modules
/usr/ports/devel/py-pyasn1
/usr/ports/devel/py-pytest-timeout
/usr/ports/misc/py-pexpect
/usr/ports/sysutils/py-ptyprocess
/usr/ports/devel/py-pytest-freezegun
/usr/ports/devel/py-freezegun
/usr/ports/devel/py-dateutil
/usr/ports/databases/py-sqlite3
/usr/ports/www/py-tornado
/usr/ports/devel/py-pytest-mock
/usr/ports/devel/py-packaging
/usr/ports/devel/py-pyparsing
/usr/ports/www/py-html5lib
/usr/ports/converters/py-webencodings
/usr/ports/devel/py-typed-ast
/usr/ports/ftp/curl
/usr/ports/www/libnghttp2
/usr/ports/archivers/zstd
/usr/ports/archivers/liblz4
/usr/ports/sysutils/coreutils
/usr/ports/textproc/expat2
/usr/ports/shells/bash
/usr/ports/devel/bison
/usr/ports/devel/jsoncpp
/usr/ports/devel/libuv
/usr/ports/security/rhash
/usr/ports/archivers/libarchive
/usr/ports/archivers/lzo2
/usr/ports/math/metis
/usr/ports/math/blas
/usr/ports/math/lapack
/usr/ports/devel/py-pympler
/usr/ports/devel/py-zope.interface
/usr/ports/devel/py-pluggy
/usr/ports/devel/py-py
/usr/ports/devel/py-wcwidth
/usr/ports/devel/py-more-itertools
/usr/ports/devel/py-pip
/usr/ports/textproc/py-furo
/usr/ports/www/py-beautifulsoup
/usr/ports/www/py-soupsieve
/usr/ports/devel/py-lxml
/usr/ports/textproc/libxslt
/usr/ports/security/libgcrypt
/usr/ports/security/libgpg-error
/usr/ports/textproc/py-sphinx-inline-tabs
/usr/ports/devel/py-csv23
/usr/ports/devel/py-invoke
/usr/ports/devel/py-pytest-rerunfailures
/usr/ports/devel/py-yaml
/usr/ports/devel/py-scripttest
/usr/ports/devel/py-tox
/usr/ports/sysutils/py-filelock
/usr/ports/devel/py-virtualenv
/usr/ports/textproc/py-sphinx_rtd_theme
/usr/ports/textproc/py-towncrier
/usr/ports/devel/py-click
/usr/ports/devel/py-incremental
/usr/ports/www/py-werkzeug
/usr/ports/devel/py-watchdog
/usr/ports/devel/py-pathtools
/usr/ports/devel/py-argh
/usr/ports/net/py-eventlet
/usr/ports/dns/py-dnspython
/usr/ports/devel/py-greenlet
/usr/ports/devel/py-wheel
/usr/ports/devel/mercurial
/usr/ports/devel/git
/usr/ports/devel/subversion
/usr/ports/security/gnupg
/usr/ports/security/libassuan
/usr/ports/security/libksba
/usr/ports/devel/npth
/usr/ports/security/pinentry
/usr/ports/security/pinentry-tty
/usr/ports/devel/apr1
/usr/ports/databases/gdbm
/usr/ports/databases/db5
/usr/ports/java/openjdk7
/usr/ports/archivers/zip
/usr/ports/archivers/unzip
/usr/ports/print/cups
/usr/ports/devel/xdg-utils
/usr/ports/textproc/minixmlto
/usr/ports/textproc/docbook-xsl
/usr/ports/textproc/xmlcatmgr
/usr/ports/textproc/docbook
/usr/ports/textproc/docbook-sgml
/usr/ports/textproc/iso8879
/usr/ports/textproc/docbook-xml
/usr/ports/textproc/xmlcharent
/usr/ports/textproc/sdocbook-xml
/usr/ports/textproc/html2text
/usr/ports/misc/hicolor-icon-theme
/usr/ports/x11/xprop
/usr/ports/x11/xset
/usr/ports/x11-toolkits/libXmu
/usr/ports/print/libpaper
/usr/ports/java/bootstrap-openjdk6
/usr/ports/java/java-zoneinfo
/usr/ports/audio/alsa-lib
/usr/ports/x11/libXi
/usr/ports/x11/libXtst
/usr/ports/java/javavmwrapper
/usr/ports/x11-fonts/dejavu
/usr/ports/x11-fonts/mkfontscale
/usr/ports/x11-fonts/libfontenc
/usr/ports/databases/mysql80-client
/usr/ports/devel/llvm11
/usr/ports/textproc/py-recommonmark
/usr/ports/textproc/py-CommonMark
/usr/ports/devel/py-future
/usr/ports/devel/swig
/usr/ports/devel/pcre
/usr/ports/devel/libevent
/usr/ports/devel/icu
/usr/ports/devel/protobuf
/usr/ports/devel/googletest
/usr/ports/textproc/groff
/usr/ports/print/psutils
/usr/ports/print/gsfonts
/usr/ports/textproc/uchardet
/usr/ports/textproc/utf8proc
/usr/ports/www/serf
/usr/ports/devel/scons
/usr/ports/sysutils/py-execnet
/usr/ports/devel/py-apipkg
/usr/ports/devel/py-pytest-forked
/usr/ports/devel/libbson
/usr/ports/converters/fribidi
/usr/ports/graphics/librsvg2-rust
/usr/ports/lang/rust
/usr/ports/lang/vala
/usr/ports/devel/gettext-runtime
/usr/ports/devel/glib20
/usr/ports/devel/gettext-tools
/usr/ports/devel/libtextstyle
/usr/ports/devel/gobject-introspection
/usr/ports/graphics/cairo
/usr/ports/x11/pixman
/usr/ports/graphics/mesa-libs
/usr/ports/graphics/wayland-protocols
/usr/ports/graphics/wayland
/usr/ports/devel/libepoll-shim
/usr/ports/textproc/py-mako
/usr/ports/www/py-beaker
/usr/ports/devel/llvm10
/usr/ports/x11/libXdamage
/usr/ports/x11/libxshmfence
/usr/ports/x11/libXxf86vm
/usr/ports/graphics/libdrm
/usr/ports/devel/libpciaccess
/usr/ports/misc/pciids
/usr/ports/print/harfbuzz
/usr/ports/textproc/gtk-doc
/usr/ports/textproc/itstool
/usr/ports/textproc/py-libxml2
/usr/ports/textproc/yelp-tools
/usr/ports/textproc/yelp-xsl
/usr/ports/graphics/graphite2
/usr/ports/print/py-fonttools3
/usr/ports/devel/py-fs2
/usr/ports/devel/py-appdirs
/usr/ports/graphics/gdk-pixbuf2
/usr/ports/misc/shared-mime-info
/usr/ports/graphics/jasper
/usr/ports/graphics/jpeg-turbo
/usr/ports/devel/nasm
/usr/ports/graphics/libGLU
/usr/ports/graphics/freeglut
/usr/ports/graphics/tiff
/usr/ports/graphics/jbigkit
/usr/ports/x11-toolkits/pango
/usr/ports/x11-fonts/xorg-fonts-truetype
/usr/ports/x11-fonts/font-bh-ttf
/usr/ports/x11-fonts/bdftopcf
/usr/ports/x11-fonts/font-misc-meltho
/usr/ports/x11-fonts/font-misc-ethiopic
/usr/ports/x11-fonts/encodings
/usr/ports/x11-fonts/font-util

In order to use that with poudriere, I will need to remove the /usr/ports/ portion which I can do fairly easily in vi.  Once in vi, I type :%s/\/usr\/ports\///g which very neatly and efficiently removes the text, then I save the file by simply typing ZZ.  Ordinarily I would take the extra step to organize those port origins alphabetically and remove duplicates, but poudriere will do this for me.  One thing I need to be sure to do, is add x11-wm/fvwm3 to this list or it will not get built with all of its indirect dependencies.  This file as is should suffice for my present needs, and I do not expect to ever need to edit it or doublecheck anything.  Let's tell poudriere to get to work.  

portsup ; poudriere bulk -f `p-keg-deblack fvwm3-and-dependents` -j 13amd64

I can only hope that the list I made had included a number of things I would not need.  The poudriere build finished surprisingly fast, considering I told it to process seventy port origins.  The tail end of the output tells the majority of the story.

[00:12:57] Creating pkg repository
Creating repository in /tmp/packages: 100%
Packing files for repository: 100%
[00:18:46] Committing packages to repository: /usr/local/poudriere/data/packages/13amd64-default/.real_1620639651 via .latest symlink
[00:18:46] Removing old packages
[00:18:46] Built ports: textproc/py-mako textproc/py-recommonmark devel/py-atomicwrites devel/py-wcwidth devel/py-incremental devel/py-py devel/py-greenlet devel/py-argh net/py-eventlet devel/py-pytest devel/py-appdirs devel/py-pyasn1 devel/py-apipkg textproc/py-towncrier devel/py-pathtools math/cblas textproc/py-sphinx_rtd_theme devel/py-sortedcontainers devel/py-pytest-forked devel/py-fs2 devel/py-pyasn1-modules sysutils/py-filelock sysutils/py-execnet textproc/py-sphinx-inline-tabs devel/py-coverage devel/py-freezegun textproc/py-furo devel/py-watchdog security/py-trustme devel/py-pytest-rerunfailures security/py-service_identity devel/py-pytest-runner devel/py-pytest-mock devel/py-virtualenv devel/py-scripttest devel/py-mock devel/py-genty devel/py-wheel devel/py-tox devel/py-pytest-xdist devel/py-invoke devel/py-pympler devel/py-zope.interface devel/py-typed-ast devel/py-pytest-timeout devel/git devel/py-csv23 devel/py-pretend www/py-werkzeug sysutils/coreutils devel/py-pytest-cov devel/libbson devel/mercurial devel/py-flaky devel/py-pytest-freezegun print/py-fonttools3 security/py-cryptography-vectors
[00:18:46] Skipped ports: databases/db5 devel/apr1 devel/py-hypothesis devel/subversion graphics/librsvg2-rust java/openjdk7 math/py-numpy www/serf
[00:18:46] Ignored ports: java/bootstrap-openjdk6 math/suitesparse security/gnupg lang/rust textproc/rubygem-asciidoctor
[13amd64-default] [2021-05-10_04h22m05s] [committing:] Queued: 70 Built: 57 Failed: 0  Skipped: 8  Ignored: 5  Tobuild: 0   Time: 00:18:43
[00:18:46] Logs: /usr/local/poudriere/data/logs/bulk/13amd64-default/2021-05-10_04h22m05s
[00:18:46] Cleaning up
13amd64-default: removed
13amd64-default-n: removed
[00:18:46] Unmounting file systems

All that is left for the moment is to suffer the consequences of switching from one to the next.  I will have to deinstall FVWM2 in order to install FVWM3, and this should be handled fairly automatically by pkg when I tell it to install FVWM3, as it very obviously conflicts with FVWM2.

No comments:

Post a Comment

Thank you for your interest!

Frequently viewed this week