111 Commits

Author SHA1 Message Date
David Herrmann
1893b8b90c build: mark binary data as read-only with objcopy
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>
2013-11-03 12:18:08 +01:00
David Herrmann
e0235ddd2b build: mark XSLTPROC with AC_ARG_VAR
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>
2013-11-03 12:17:18 +01:00
David Herrmann
924a732e7c shl: move static_gl_* to shl_gl_*
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>
2013-11-03 12:12:07 +01:00
David Herrmann
9a5fcd3206 Bump kmscon version to 8
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>
2013-10-29 11:10:52 +01:00
David Herrmann
fc627a94e4 build: enable kmscon unconditionally
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>
2013-10-29 10:36:07 +01:00
David Herrmann
35fbe621e4 build: link eloop statically
We don't want to export libeloop so link it statically. Avoid installing
into into the system.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
2013-10-29 10:24:31 +01:00
David Herrmann
6ef8db0790 build: link libuterm statically
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>
2013-10-29 10:19:05 +01:00
David Herrmann
527ef20fb8 build: remove default /usr prefix
We should never install anything into /usr by default. Remove that.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
2013-10-29 10:08:25 +01:00
David Herrmann
1e94fc361e Remove cairo text-renderer
The cairo text-renderer is _way_ too slow. There's no reason to keep it
around, anymore.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
2013-10-29 10:07:46 +01:00
David Herrmann
9f2f11d2a5 Remove libuvt
uvt is not used inside of kmscon. Moved into a separate library if
some-one is interested.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
2013-10-29 10:01:13 +01:00
David Herrmann
761434ecac Remove freetype2 font backend
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>
2013-10-29 09:31:03 +01:00
David Herrmann
96b28e953d tsm: remove and depend on libtsm
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>
2013-10-23 16:55:59 +02:00
David Herrmann
972ec107cf kmscon: remove cdev sessions
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>
2013-10-23 15:22:28 +02:00
David Herrmann
bcfb1d2ab5 uvtd: remove
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>
2013-10-23 15:15:50 +02:00
David Herrmann
695c855da3 wlterm: remove
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>
2013-10-23 15:11:21 +02:00
Thierry Reding
2d191bd876 build: allow kmscon to be cross-compiled
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>
2013-09-12 13:38:04 +02:00
David Herrmann
b5aa1ec644 docs: fix links to point to freedesktop.org
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>
2013-03-04 16:05:34 +01:00
David Herrmann
3168ba5a8f build: use xz tarballs instead of bz2
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>
2013-03-04 16:04:15 +01:00
David Herrmann
616a275605 build: add --enable-all
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>
2013-03-04 15:45:47 +01:00
David Herrmann
176a0e8be5 uvtd: add new Virtual Terminal daemon
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>
2013-03-04 15:11:30 +01:00
David Herrmann
ed6d7fa116 Release kmscon-7
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.gz
  https://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>
2013-02-28 11:37:16 +01:00
David Herrmann
b465a83725 build: fix empty --with-*= arguments
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>
2013-02-27 19:48:53 +01:00
David Herrmann
89247bf94c build: enable static libraries by default
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>
2013-02-27 19:47:33 +01:00
David Herrmann
068119a6c3 uvt: new library implementing VTs in user-space
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>
2013-02-27 19:44:55 +01:00
David Herrmann
0160457914 build: check for fuse >= 2.9.0
We need "fuse_buf" so check for at least fuse 2.9.0.

Reported-by: https://github.com/dvdhrm/kmscon/issues/67
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
2013-02-16 21:19:21 +01:00
David Herrmann
1d4f6d4379 build: enable unifont by default
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>
2013-02-16 21:05:55 +01:00
Jakub Wilk
37f88bd384 Fix several typos
Provided via github. Fixes typos in documentation and comments.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
2013-02-11 16:24:21 +01:00
David Herrmann
aad2715cf4 build: major cleanup
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>
2013-02-06 01:22:10 +01:00
David Herrmann
4f8edb38c8 wlt: link font library statically
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>
2013-01-24 20:32:40 +01:00
David Herrmann
0f206cc5b5 uterm: drm: rename to drm3d
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>
2013-01-24 16:42:03 +01:00
David Herrmann
f289349ef9 uterm: rename drm-dumb backend into drm2d module
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>
2013-01-24 14:42:54 +01:00
David Herrmann
79c5ba7185 kmscon: add pixman renderer
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>
2013-01-24 12:13:29 +01:00
David Herrmann
0a3c34ca0e kmscon: add cairo-renderer module
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>
2013-01-15 16:30:49 +01:00
David Herrmann
67ac019dec uterm: remove unused pciaccess helpers
We now detect primary GPUs via udev so the pciaccess helpers are no longer
needed.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
2013-01-07 13:40:26 +01:00
David Herrmann
995c07f853 kmscon: make bblit mandatory
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>
2013-01-03 17:48:23 +01:00
David Herrmann
bef45b7d65 build: disable freetype2 by default
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>
2013-01-03 17:09:18 +01:00
David Herrmann
0c119779ad build: disable wlterm by default
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>
2013-01-03 15:53:01 +01:00
David Herrmann
180f25375d build: link each text-font backend separately
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>
2013-01-02 18:02:10 +01:00
David Herrmann
eba5178643 build: check for udev >=172
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>
2012-12-10 16:21:32 +01:00
David Herrmann
f951f6b705 Release kmscon-6
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>
2012-12-09 21:55:32 +01:00
David Herrmann
978b869e8b build: add more verbose recursive error-messages to configure.ac
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>
2012-12-09 17:45:50 +01:00
David Herrmann
7c503b203e build: add AC_PROG_SED to configure.ac
We need SED for man-page generation so explicitly look for it.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
2012-12-09 17:45:20 +01:00
David Herrmann
3d28387fb2 kmscon: remove compositor support
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>
2012-12-09 15:55:26 +01:00
David Herrmann
b985e55d3a Add manpage infrastructure and kmscon.1 manpage
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>
2012-12-09 13:18:56 +01:00
David Herrmann
b18cf69663 Move .pc files to ./docs/pc/
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>
2012-12-05 18:25:05 +01:00
David Herrmann
0799a4e1fb build: fix wlterm wayland-dependency check
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>
2012-11-17 19:42:57 +01:00
David Herrmann
9cc9008866 build: fix typo in configure.ac regarding cdev-sessions
A missing "test" keyword causes bash to fail executing this statement. Fix
this.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
2012-10-29 20:34:03 +01:00
David Herrmann
22e73357ff uterm: monitor: put systemd-layer into separate file
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>
2012-10-29 18:09:35 +01:00
David Herrmann
89e84aa78c uterm: add PCI primary GPU detection
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>
2012-10-27 13:25:44 +02:00
David Herrmann
2c5e9bff2b kmscon: add character-device session dummy
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>
2012-10-26 18:08:35 +02:00