Check for objcopy in configure.ac and then mark binary data as read-only
by renaming .data to .rodata and setting the correct flags.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
This allows changing the path to XSLTPROC via the command-line option if
it cannot be found by autoconf.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
No need to keep these static helpers outside of SHL. Instead, include them
in SHL to avoid any external linking.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
We're ready for a new bugfix release. Bump version to 8. No libraries are
installed, anymore, so no need to bump library versions.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
We removed all additional libraries/applications so we can now always
enable building kmscon. This also means we can remove a bunch of old now
unused options and flags.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
We shouldn't export libraries which we don't really allow linkink
externally. Link libuterm statically and avoid installing it into /lib.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
The freetype2 font backend lacks support for proper combining marks and I
do not intend to ever implement that. Use pango!
If you don't want heavy dependencies, you can use the unifont or 8x16
backends.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
TSM was extracted from kmscon sources so it can more easily be used by
other emulators. It is available at:
http://cgit.freedesktop.org/~dvdhrm/libtsm
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
cdev sessions are outdated. Use libuvt instead. Remove all references to
cdev-sessions and clean up the build chain.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Remove uvtd. The idea is outdated and not really needed. With recent
systemd-logind changes, all we need is a shim between legacy-programs
(like XServer) and logind. We can easily do that via libuvt without
requiring a huge daemon like uvtd.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Remove all wlterm sources. I never intended to maintain it longer than any
major terminal-emulator needs to get ported over to wayland. Hence, remove
it. It was buggy, anyway.
If anyone is interested, a GTK+ based wlterm is available on:
http://cgit.freedesktop.org/~dvdhrm/wlterm
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
The genshader and genunifont utilities are run during the build process
to generate source files. In order for that to work when cross-compiling
the files need to be built using the native compiler instead of the
cross-compiler.
Add the AX_PROG_CC_FOR_BUILD m4 macro which defines various *_FOR_BUILD
variables that are the native equivalents of CC, CFLAGS, LDFLAGS, etc.
Override CC, CFLAGS and LDFLAGS for genshader and genunifont and their
object files so that they will be built natively and can be executed
during the build.
Signed-off-by: Thierry Reding <treding@nvidia.com>
(added TODO marker)
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
kmscon is now hosted on freedesktop.org. Please don't use the github
links, anymore. I will push to github for some more weeks, but I recommend
to everyone to use my freedesktop.org repository as primary upstream link.
There were many reasons why github.com wasn't sufficient, anymore. But the
main reason is that they no longer provide upload space for release
tarballs. Hence, lets ditch github and move to freedesktop.org which
kindly provides everything we need plus a really nice mailing-list.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
xz is way better than bz2 with same/better decompression times.
Compression will take longer, but that's totally ok.
All new tarballs will be provided as xz only. Please adjust your
build-scripts to stop using bz2.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
This flag enables all other options that extend the build. It is used for
debugging only and should never be used by distributions to control what
is built. Hence, we don't document it and never advertise it.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
This introduces uvtd which replaces kmscon sessions as an external helper
program. It's still a dummy program but it will get extended soon. After
that, kmscon sessions will get removed and limited to a single seat. This
will simplify kmscon itself heavily and move rarely used features out of
kmscon into helpers.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
This is kmscon-7. See ./NEWS for a list of new features.
Unfortunately, github disabled the "Downloads" section so there is no way
to upload new pre-generated tarballs. I have a pending application to move
kmscon to freedesktop.org, but it didn't get processed in time for this
release. Therefore, you need to build the GNU-autotools files yourself.
That is, before calling ./configure you need to call:
NOCONFIGURE=1 ./autogen.sh
You can extend your build-scripts with:
test -f ./configure || NOCONFIGURE=1 ./autogen.sh
Which will call ./autogen.sh if needed. Everything else can be left
unchanged.
I will not upload the tarballs at another location. Feel free to do that
yourself, but I personally think this will introduce more confusion than
help. I hope the freedesktop.org move will be soon approved. This will
also provide a mailing-list where I can properly announce new releases.
Raw tarballs will be available as (without pre-generated autotools):
https://github.com/dvdhrm/kmscon/archive/kmscon-7.tar.gzhttps://github.com/dvdhrm/kmscon/archive/kmscon-7.zip
The git-tag is: kmscon-7
You can use my public GPG key to verify the tarballs.
As usual, please report bugs to: https://github.com/dvdhrm/kmscon
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
It currently isn't possible to pass empty lists to these arguments as it
will then be interpreted as default. Fix this by using "default" if it is
empty.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
No reason to disable static libraries. Remove the LT_INIT parameter so we
can provide statically linked libraries.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
UVT is based heavily on the old cdev-sessions. It uses CUSE/FUSE to
implement virtual terminals in user-space.
This move into a library allows to use it in other projects, too. There is
no reason to limit it to kmscon sessions. In fact, we will remove the
cdev-sessions, soon and make kmscon a stand-alone terminal emulator
without any session capability.
Instead, the uvtd program will provide the VT emulation.
This library is not finished, nor ready for use. However, feel free to
contribute patches so we can eventually release a stable API.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Unifont is a very nice font-backend that now has sane compilation times
(by using ld directly). It's recommended over 8x16 as it has proper
internationalization support.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Major overhaul of the build system. This introduces symbol-versioning for
all exported libraries. Please note that none of these libraries is
stable, yet!
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
We need the font layer to build wlterm. However, the font layer depends on
kmscon internal module handling so we cannot do this. To avoid this, we
simply provide dummy handlers for the kmscon_module_* layer and link it
anyway. This is kind of ugly but works, yey!
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This renames the video-drm backend to drm3d (which was already used
internally). This is a pure rename, the code-logic stays the same.
This also puts the drm3d backend into a module so we can more easily
load it during runtime.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This moves all the drm-dumb code into a new module that is now called
drm2d (which was already used internally before).
No conceptual changes, just renames and moves.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This is an experimental renderer based on pixman. It is only available for
testing-purposes and should not be used in production, yet. The bbulk
renderer is still the faster alternative and should be used instead.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
The cairo text renderer uses the cairo blitting functions to blit all
glyphs into the cairo-surface. This is only for testing-purposes. Cairo is
not really suited for blending/blitting of large surfaces. Hence, this
backend is horribly slow compared to bblit/bbulk.
This backend is disabled by default.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Similar to the font backends we now require one backend to be always
available as safe fallback. The bblit backend is the most basic backend so
make it mandatory and link it unconditionally.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
The freetype2 backend is no longer recommended. You should always prefer
the pango backend. Pango provides a lot more advanced font options and
internationalization.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
wlterm hasn't been updated for long and it will take some more time to get
it to work with recent Wayland protocol. Hence, disable it so it doesn't
matter if it breaks for now.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
We want to modularize the text-font library, so we need each backend as a
different library. This step links each of them into a different static
library so we can now link them either into the binary or into modules.
This step also makes 8x16 always compiled into the text-font backend so we
always have a working implementation even though no modules might be
loaded.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
We need udev_device_has_tag() which was introduced in version 172.
Document that in README file.
Reported-by: Manuel Rüger <mrueg@rueg.eu>
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This release contains a lot of fixes all over the place and introduces
many new features. See ./NEWS for a list of new features.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Our dependency checker should recursively report missing dependencies.
Otherwise, the user doesn't really know what is missing.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
The wayland compositor support was some research project that turned out
to not work that well. The main problem is that the DRM planes support
cannot be easily forwarded to a child. Sub-surface support might change
that but until then we remove compositor support.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Add a very basic man-page infrastructure so we can easily add new
docbook-style manpages.
Also add kmscon.1 man-page with a basic overview.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
We want only C-source files in ./src and the documents ./docs directory is
meant to contain any other sources.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
The logic behind this two-layer check is bogus and doesn't work. Merge
both layers so we have a proper dependency-check again. This will make the
error messages less verbose but at least it works again.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This moves all systemd code into uterm_systemd.[ch]. This removes all the
ugly #ifdef's.
Furthermore, this fixes some hidden bugs in the previous implementation
and makes use of sd_booted() to see whether runtime systemd is really
available.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
We used to simply probe every GPU that is reported by the kernel. However,
if a system has multiple GPUs that share display controllers, we cannot
use both simultaneously. Unfortunately, the kernel currently does not
notify us about this. Hence, we use some heuristics to determine which GPU
is the boot-gpu/primary-gpu.
This only adds the detection logic, it does not modify any code to use
this detection at all.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
If libfuse is available then kmscon is built with a new session type: cdev
This session creates a fake TTY char-dev via CUSE (which itself uses FUSE)
which then can be used by user-space as if it were a real VT.
This is still incomplete and does only support basic I/O, yet. But it
shows in what direction this is going.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>