diff --git a/pkgs/by-name/xs/xsm/package.nix b/pkgs/by-name/xs/xsm/package.nix new file mode 100644 index 000000000000..a8bc165c4991 --- /dev/null +++ b/pkgs/by-name/xs/xsm/package.nix @@ -0,0 +1,88 @@ +{ + lib, + stdenv, + fetchurl, + pkg-config, + wrapWithXFileSearchPathHook, + xorgproto, + libice, + libsm, + libx11, + libxaw, + libxt, + makeBinaryWrapper, + writeScript, + # run time dependencies + iceauth, + smproxy, + twm, + xterm, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "xsm"; + version = "1.0.6"; + + src = fetchurl { + url = "mirror://xorg/individual/app/xsm-${finalAttrs.version}.tar.xz"; + hash = "sha256-t0zHdMYGDDdZL2ipDb0xsPKmL7FOVidpQ095vihKY84="; + }; + + strictDeps = true; + + nativeBuildInputs = [ + pkg-config + wrapWithXFileSearchPathHook + makeBinaryWrapper + ]; + + buildInputs = [ + xorgproto + libice + libsm + libx11 + libxaw + libxt + ]; + + installFlags = [ "appdefaultdir=$(out)/share/X11/app-defaults" ]; + + postInstall = '' + wrapProgram $out/bin/xsm \ + --prefix PATH : ${ + lib.makeBinPath [ + iceauth + smproxy + twm + xterm + ] + } + ''; + + passthru = { + updateScript = writeScript "update-${finalAttrs.pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts + version="$(list-directory-versions --pname ${finalAttrs.pname} \ + --url https://xorg.freedesktop.org/releases/individual/app/ \ + | sort -V | tail -n1)" + update-source-version ${finalAttrs.pname} "$version" + ''; + }; + + meta = { + description = "X Session Manager"; + longDescription = '' + A session is a group of X applications, each of which has a particular state. xsm allows you + to create arbitrary sessions - for example, you might have a "light" session, a "development" + session, or an "xterminal" session. Each session can have its own set of applications. Within + a session, you can perform a "checkpoint" to save application state, or a "shutdown" to save + state and exit the session. When you log back in to the system, you can load a specific + session, and you can delete sessions you no longer want to keep. + ''; + homepage = "https://gitlab.freedesktop.org/xorg/app/xsm"; + license = lib.licenses.mitOpenGroup; + mainProgram = "xsm"; + maintainers = [ ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix index 3c5c7bd9db34..54f068823f2f 100644 --- a/pkgs/servers/x11/xorg/default.nix +++ b/pkgs/servers/x11/xorg/default.nix @@ -84,6 +84,7 @@ xrefresh, xset, xsetroot, + xsm, xtrans, xvinfo, xwininfo, @@ -130,6 +131,7 @@ self: with self; { xrefresh xset xsetroot + xsm xtrans xvinfo xwininfo @@ -5436,54 +5438,6 @@ self: with self; { }) ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! - xsm = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - libICE, - libSM, - libX11, - libXaw, - xorgproto, - libXt, - wrapWithXFileSearchPathHook, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "xsm"; - version = "1.0.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xsm-1.0.6.tar.xz"; - sha256 = "1kk398lbwyag8dljfmjfn4psdwmh66yhvab85xckf306qrscfk5p"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ - pkg-config - wrapWithXFileSearchPathHook - ]; - buildInputs = [ - libICE - libSM - libX11 - libXaw - xorgproto - libXt - ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! xstdcmap = callPackage ( { diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl index 7c9f3bb3c524..6a582098d527 100755 --- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl +++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl @@ -400,6 +400,7 @@ print OUT <