Skip to content

louvre: init at 1.1.0-1#269247

Merged
Janik-Haag merged 3 commits intoNixOS:masterfrom
dblsaiko:outgoing/louvre
Dec 21, 2023
Merged

louvre: init at 1.1.0-1#269247
Janik-Haag merged 3 commits intoNixOS:masterfrom
dblsaiko:outgoing/louvre

Conversation

@dblsaiko
Copy link
Contributor

Description of changes

Adds the Louvre library for building Wayland compositors. It comes with a few demo compositors.

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 23.11 Release Notes (or backporting 23.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Priorities

Add a 👍 reaction to pull requests you find important.

@ofborg ofborg bot added 8.has: package (new) This PR adds a new package 11.by: package-maintainer This PR was created by a maintainer of all the package it changes. 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. labels Nov 28, 2023
@dblsaiko dblsaiko force-pushed the outgoing/louvre branch 2 times, most recently from 52dee74 to f53bda0 Compare December 19, 2023 20:34
@dblsaiko dblsaiko changed the title louvre: init at 1.0.1-1 louvre: init at 1.1.0-1 Dec 19, 2023
Copy link
Member

@Janik-Haag Janik-Haag left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly looks good, just some small change suggestions. Also how would I test if the package is actually working, I can off-course build it (and it builds fine) but is there some simple way to test functionality?

@dblsaiko dblsaiko force-pushed the outgoing/louvre branch 2 times, most recently from 37e90df to 3b1a6b0 Compare December 20, 2023 07:41
@Janik-Haag
Copy link
Member

just waiting for ci now.

@dblsaiko
Copy link
Contributor Author

Also how would I test if the package is actually working, I can off-course build it (and it builds fine) but is there some simple way to test functionality?

Right, I never responded to this, sorry. You can run the demo compositors in bin from the TTY (it doesn't yet support windowed mode, right @ehopperdietzel?)

@Janik-Haag
Copy link
Member

I might be missing something but I don't see a binary:
./result-dev/
├── include
│   └── Louvre
│   ├── LAnimation.h
│   ├── LBaseSurfaceRole.h
│   ├── LClient.h
│   ├── LCompositor.h
│   ├── LCursor.h
│   ├── LCursorRole.h
│   ├── LDataDevice.h
│   ├── LDataOffer.h
│   ├── LDataSource.h
│   ├── LDNDIconRole.h
│   ├── LDNDManager.h
│   ├── LFramebuffer.h
│   ├── LKeyboard.h
│   ├── LLauncher.h
│   ├── LLayerView.h
│   ├── LLog.h
│   ├── LNamespaces.h
│   ├── LObject.h
│   ├── LOpenGL.h
│   ├── LOutputFramebuffer.h
│   ├── LOutput.h
│   ├── LOutputMode.h
│   ├── LPainter.h
│   ├── LPointer.h
│   ├── LPoint.h
│   ├── LPopupRole.h
│   ├── LPositioner.h
│   ├── LRect.h
│   ├── LRegion.h
│   ├── LRenderBuffer.h
│   ├── LResource.h
│   ├── LScene.h
│   ├── LSceneView.h
│   ├── LSeat.h
│   ├── LSize.h
│   ├── LSolidColorView.h
│   ├── LSubsurfaceRole.h
│   ├── LSurface.h
│   ├── LSurfaceView.h
│   ├── LTexture.h
│   ├── LTextureView.h
│   ├── LTime.h
│   ├── LTimer.h
│   ├── LToplevelRole.h
│   ├── LView.h
│   ├── LXCursor.h
│   ├── other
│   │   ├── cursor.h
│   │   ├── stb_image.h
│   │   └── stb_image_write.h
│   ├── private
│   │   ├── LAnimationPrivate.h
│   │   ├── LBaseSurfaceRolePrivate.h
│   │   ├── LClientPrivate.h
│   │   ├── LCompositorPrivate.h
│   │   ├── LCursorPrivate.h
│   │   ├── LCursorRolePrivate.h
│   │   ├── LDataDevicePrivate.h
│   │   ├── LDataOfferPrivate.h
│   │   ├── LDataSourcePrivate.h
│   │   ├── LDNDIconRolePrivate.h
│   │   ├── LDNDManagerPrivate.h
│   │   ├── LKeyboardPrivate.h
│   │   ├── LLayerViewPrivate.h
│   │   ├── LObjectPrivate.h
│   │   ├── LOutputFramebufferPrivate.h
│   │   ├── LOutputModePrivate.h
│   │   ├── LOutputPrivate.h
│   │   ├── LPainterPrivate.h
│   │   ├── LPointerPrivate.h
│   │   ├── LPopupRolePrivate.h
│   │   ├── LPositionerPrivate.h
│   │   ├── LRenderBufferPrivate.h
│   │   ├── LResourcePrivate.h
│   │   ├── LScenePrivate.h
│   │   ├── LSceneViewPrivate.h
│   │   ├── LSeatPrivate.h
│   │   ├── LSolidColorViewPrivate.h
│   │   ├── LSubsurfaceRolePrivate.h
│   │   ├── LSurfacePrivate.h
│   │   ├── LSurfaceViewPrivate.h
│   │   ├── LTexturePrivate.h
│   │   ├── LTextureViewPrivate.h
│   │   ├── LTimerPrivate.h
│   │   ├── LToplevelRolePrivate.h
│   │   ├── LViewPrivate.h
│   │   └── LXCursorPrivate.h
│   └── protocols
│   ├── LinuxDMABuf
│   │   ├── GLinuxDMABuf.h
│   │   ├── LDMABuffer.h
│   │   ├── linux-dmabuf-unstable-v1.h
│   │   ├── private
│   │   │   ├── GLinuxDMABufPrivate.h
│   │   │   ├── LDMABufferPrivate.h
│   │   │   ├── RLinuxBufferParamsPrivate.h
│   │   │   └── RLinuxDMABufFeedbackPrivate.h
│   │   ├── RLinuxBufferParams.h
│   │   └── RLinuxDMABufFeedback.h
│   ├── Wayland
│   │   ├── GCompositor.h
│   │   ├── GDataDeviceManager.h
│   │   ├── GOutput.h
│   │   ├── GSeat.h
│   │   ├── GSubcompositor.h
│   │   ├── private
│   │   │   ├── GCompositorPrivate.h
│   │   │   ├── GDataDeviceManagerPrivate.h
│   │   │   ├── GOutputPrivate.h
│   │   │   ├── GSeatPrivate.h
│   │   │   ├── GSubcompositorPrivate.h
│   │   │   ├── RCallbackPrivate.h
│   │   │   ├── RDataDevicePrivate.h
│   │   │   ├── RDataOfferPrivate.h
│   │   │   ├── RDataSourcePrivate.h
│   │   │   ├── RKeyboardPrivate.h
│   │   │   ├── RPointerPrivate.h
│   │   │   ├── RRegionPrivate.h
│   │   │   ├── RSubsurfacePrivate.h
│   │   │   └── RSurfacePrivate.h
│   │   ├── RCallback.h
│   │   ├── RDataDevice.h
│   │   ├── RDataOffer.h
│   │   ├── RDataSource.h
│   │   ├── RKeyboard.h
│   │   ├── RPointer.h
│   │   ├── RRegion.h
│   │   ├── RSubsurface.h
│   │   ├── RSurface.h
│   │   └── wayland.h
│   ├── WpPresentationTime
│   │   ├── GWpPresentation.h
│   │   ├── presentation-time.h
│   │   ├── private
│   │   │   ├── GWpPresentationPrivate.h
│   │   │   └── RWpPresentationFeedbackPrivate.h
│   │   └── RWpPresentationFeedback.h
│   ├── XdgDecoration
│   │   ├── GXdgDecorationManager.h
│   │   ├── private
│   │   │   ├── GXdgDecorationManagerPrivate.h
│   │   │   └── RXdgToplevelDecorationPrivate.h
│   │   ├── RXdgToplevelDecoration.h
│   │   └── xdg-decoration-unstable-v1.h
│   └── XdgShell
│   ├── GXdgWmBase.h
│   ├── private
│   │   ├── GXdgWmBasePrivate.h
│   │   ├── RXdgPopupPrivate.h
│   │   ├── RXdgPositionerPrivate.h
│   │   ├── RXdgSurfacePrivate.h
│   │   └── RXdgToplevelPrivate.h
│   ├── RXdgPopup.h
│   ├── RXdgPositioner.h
│   ├── RXdgSurface.h
│   ├── RXdgToplevel.h
│   └── xdg-shell.h
├── lib
│   └── pkgconfig
│   └── Louvre.pc
└── nix-support
└── propagated-build-inputs

19 directories, 146 files

@dblsaiko
Copy link
Contributor Author

Hmm, is there no 'out' output? I'll have to check in a bit, that's wrong.

@dblsaiko
Copy link
Contributor Author

Yeah, it's there for me.

% nix build -f . louvre
% result/bin/louvre-views

ctrl+shift+esc to quit.

@Janik-Haag
Copy link
Member

Hm it's not there if I do nix-build -A louvre

@Janik-Haag
Copy link
Member

image
and for me all of them segfault.

@Janik-Haag Janik-Haag self-requested a review December 20, 2023 13:17
@dblsaiko
Copy link
Contributor Author

Yes, you need to run them from the TTY, it doesn't support nested compositor yet.

@ehopperdietzel
Copy link

Also how would I test if the package is actually working, I can off-course build it (and it builds fine) but is there some simple way to test functionality?

Right, I never responded to this, sorry. You can run the demo compositors in bin from the TTY (it doesn't yet support windowed mode, right @ehopperdietzel?)

Yes, currently, it only has the DRM graphic backend, so, as you mentioned, it should be launched from a free session (tty). If you still face issues running it, setting LOUVRE_DEBUG=4 should help you understand what is happening.

Copy link
Member

@Janik-Haag Janik-Haag left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, sorry for the trouble, one last thing you should add meta.mainProgram so nix run adn lib.getExe know what the default binary is.

@dblsaiko
Copy link
Contributor Author

I'll just pick louvre-views for that since that's the one with the most lines of code :P

@Janik-Haag
Copy link
Member

@ofborg build louvre

@Janik-Haag Janik-Haag merged commit 2530753 into NixOS:master Dec 21, 2023
@dblsaiko dblsaiko deleted the outgoing/louvre branch December 21, 2023 10:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

8.has: package (new) This PR adds a new package 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 11.by: package-maintainer This PR was created by a maintainer of all the package it changes.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants