.gear/rules | 2 + .../tags/286e0c624bc739ca98b8d57e5c6eb63d6ec1fcd6 | 13 ++++ .gear/tags/list | 1 + .gear/upstream/remotes | 3 + docs/kmscon.service.in | 5 +- docs/kmsconvt@.service.in | 3 +- kmscon.spec | 77 ++++++++++++++++++++++ tests/test_input.c | 11 +++- 8 files changed, 111 insertions(+), 4 deletions(-) diff --git a/.gear/rules b/.gear/rules new file mode 100644 index 0000000..26340af --- /dev/null +++ b/.gear/rules @@ -0,0 +1,2 @@ +tar: v@version@:. +diff: v@version@:. . name=@name@-@version@.patch diff --git a/.gear/tags/286e0c624bc739ca98b8d57e5c6eb63d6ec1fcd6 b/.gear/tags/286e0c624bc739ca98b8d57e5c6eb63d6ec1fcd6 new file mode 100644 index 0000000..e02cd2d --- /dev/null +++ b/.gear/tags/286e0c624bc739ca98b8d57e5c6eb63d6ec1fcd6 @@ -0,0 +1,13 @@ +object 32927918cf5f90c2219d4f17055f9a9aef5223d2 +type commit +tag v9.0.0 +tagger Aetf 1655279379 -0700 + +v9.0.0 +-----BEGIN PGP SIGNATURE----- + +iHUEABYIAB0WIQSoIPA+wciOzlJinR77IaPuh0+XhwUCYqmPGgAKCRD7IaPuh0+X +h9k7APwIPhJas7/o4RolltkfFn/8qXGPVyLsLrO7cATggo+EnAD/ZsOe3hCTxLkh +0zuZpJyLB6hbC2AI7Rd1HtramHhErAU= +=xAnV +-----END PGP SIGNATURE----- diff --git a/.gear/tags/list b/.gear/tags/list new file mode 100644 index 0000000..3d0677a --- /dev/null +++ b/.gear/tags/list @@ -0,0 +1 @@ +286e0c624bc739ca98b8d57e5c6eb63d6ec1fcd6 v9.0.0 diff --git a/.gear/upstream/remotes b/.gear/upstream/remotes new file mode 100644 index 0000000..1f3c4fe --- /dev/null +++ b/.gear/upstream/remotes @@ -0,0 +1,3 @@ +[remote "upstream"] + url = https://github.com/Aetf/kmscon.git + fetch = +refs/heads/*:refs/remotes/upstream/* diff --git a/docs/kmscon.service.in b/docs/kmscon.service.in index c29fe92..ad5600d 100644 --- a/docs/kmscon.service.in +++ b/docs/kmscon.service.in @@ -1,9 +1,12 @@ [Unit] Description=KMS System Console Documentation=man:kmscon(1) +After=plymouth-quit-wait.service +After=systemd-user-sessions.service +After=rc-local.service [Service] -ExecStart=@bindir@/kmscon -l /bin/login +ExecStart=@bindir@/kmscon --login -- /sbin/agetty -o '-p -- \\u' --noclear -- - [Install] WantedBy=multi-user.target diff --git a/docs/kmsconvt@.service.in b/docs/kmsconvt@.service.in index 84b66bf..a496e26 100644 --- a/docs/kmsconvt@.service.in +++ b/docs/kmsconvt@.service.in @@ -30,6 +30,7 @@ Description=KMS System Console on %I Documentation=man:kmscon(1) After=systemd-user-sessions.service After=plymouth-quit-wait.service +After=rc-local.service Before=getty.target Conflicts=getty@%i.service OnFailure=getty@%i.service @@ -37,7 +38,7 @@ IgnoreOnIsolate=yes ConditionPathExists=/dev/tty0 [Service] -ExecStart=@bindir@/kmscon "--vt=%I" --seats=seat0 --no-switchvt +ExecStart=@bindir@/kmscon --vt=%I --seats=seat0 --no-switchvt --login -- /sbin/agetty -o '-p -- \\u' --noclear -- - UtmpIdentifier=%I TTYPath=/dev/%I TTYReset=yes diff --git a/kmscon.spec b/kmscon.spec new file mode 100644 index 0000000..ec55952 --- /dev/null +++ b/kmscon.spec @@ -0,0 +1,77 @@ +%define _unpackaged_files_terminate_build 1 + +Name: kmscon +Version: 9.0.0 +Release: alt1 +Summary: KMS/DRM based System Console +Group: Terminals + +License: MIT and LGPLv2+ +Url: http://www.freedesktop.org/wiki/Software/kmscon/ +Source: %name-%version.tar +Patch1: %name-%version.patch + +BuildRequires(pre): meson +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: xkeyboard-config +BuildRequires: pkgconfig(libtsm) >= 4.0.0 +BuildRequires: pkgconfig(libudev) >= 172 +BuildRequires: pkgconfig(libdrm) +BuildRequires: libsystemd-devel pkgconfig(libsystemd) +BuildRequires: pkgconfig(gbm) +BuildRequires: pkgconfig(egl) +BuildRequires: pkgconfig(glesv2) +BuildRequires: pkgconfig(pango) pkgconfig(pangoft2) +BuildRequires: pkgconfig(pixman-1) +BuildRequires: xsltproc docbook-style-xsl docbook-dtds + +%description +Kmscon is a simple terminal emulator based on Linux kernel mode setting (KMS). +It is an attempt to replace the in-kernel VT implementation with a user-space +console. See kmscon(1) man-page for usage information. + +%prep +%setup +%patch1 -p1 + +%build +# In the development branch upstream fixes this differently. +sed -i '/^systemddir = .*$/'c"systemddir = '/lib/systemd'" meson.build +# Patch out tests we have to skip. +sed -i /"'"output"'"/c"# 'output' needs /dev/dri/card*" tests/meson.build +sed -i /"'"vt"'"/c"# 'vt' hangs in hasher" tests/meson.build + +%meson +%meson_build + +%install +%meson_install + +%check +%meson_test + +%files +%doc COPYING NEWS README.md +%_bindir/%name +%_unitdir/*.service +%dir %_libdir/%name +%_libdir/%name/mod-*.so +%dir %_libexecdir/kmscon +%_libexecdir/kmscon/kmscon +%_man1dir/%name.1* + +%changelog +* Fri Mar 10 2023 Arseny Maslennikov 9.0.0-alt1 +- 8.0.40.g01dd0a2 -> 9.0.0. + +* Thu Aug 15 2019 Alexey Shabalin 8-alt4.40.g01dd0a2 +- disable post/preun scripts + +* Thu Aug 01 2019 Alexey Shabalin 8-alt3.40.g01dd0a2 +- Update to git snapshot 01dd0a2 + +* Tue Jan 23 2018 Aleksei Nikiforov 8-alt2 +- Fixed build with new systemd and glibc. + +* Tue Jun 17 2014 Alexey Shabalin 8-alt1 +- initial build diff --git a/tests/test_input.c b/tests/test_input.c index 1a14aa4..8883a09 100644 --- a/tests/test_input.c +++ b/tests/test_input.c @@ -244,11 +244,18 @@ int main(int argc, char **argv) if (ret) goto err_mon; - system("stty -echo"); + ret = system("stty -echo"); + if (ret) + goto err_signal; + uterm_monitor_scan(mon); ev_eloop_run(eloop, -1); - system("stty echo"); + ret = system("stty echo"); + if (ret) + goto err_signal; + +err_signal: ev_eloop_unregister_signal_cb(eloop, SIGQUIT, sig_quit, NULL); err_mon: uterm_monitor_unref(mon);