elementary / default-settings

Default settings for elementary OS
GNU General Public License v3.0
39 stars 28 forks source link

Build with Meson #119

Closed worldofpeace closed 4 years ago

worldofpeace commented 5 years ago

Fixes #79

Should essentially complete https://github.com/elementary/default-settings/tree/meson.

worldofpeace commented 5 years ago

I've rebased to master, and added a commit to install the accountsservice files https://github.com/elementary/default-settings/pull/119/commits/89e53b6090b8981cab5f4d97cd3c5759b10c47fd.

worldofpeace commented 4 years ago

@codygarver I'd really like to get this merged. I've rebased this for nth time..

quequotion commented 4 years ago

TravisCI fails with:

Called `/usr/bin/pkg-config --modversion polkit-gobject-1` -> 1
1604
1605Dependency polkit-gobject-1 found: NO (tried pkgconfig)
1606
1607accountsservice/meson.build:10:0: ERROR:  Dependency "polkit-gobject-1" not found, tried pkgconfig

In Archlinux this is provided by the polkit package; not sure about Ubuntu/Debian packaging (polkit-gobject?). Somehow need to get TravisCI to preinstall the dependency before building the package. I don't remember how this is done, but I think it needs to be done in .travis.yml.

worldofpeace commented 4 years ago

Last time an elementary OS member reviewed my meson PR's, I was instructed to leave the CI stuff to them. And I think they're switching from Travis CI anyway.

btd1337 commented 4 years ago

Any progress on this?

btd1337 commented 4 years ago

Travis CI is pointed to unstable image. Is this okay?

- docker run -v "$PWD":/tmp/build-dir elementary/docker:juno-unstable

worldofpeace commented 4 years ago

Any progress on this?

I can rebase this. It's been complete for a while now, and I even use it downstream in NixOS.

worldofpeace commented 4 years ago

Travis CI is pointed to unstable image. Is this okay?

  • docker run -v "$PWD":/tmp/build-dir elementary/docker:juno-unstable

They use GitHub for CI now. I've switched it over in this PR.

worldofpeace commented 4 years ago

Perhaps @decathorpe could review this.

decathorpe commented 4 years ago

@worldofpeace Sorry, I seem to have missed the notification to review this PR.

I'm probably not the best person to do it though, since I'm not using this project at all.

worldofpeace commented 4 years ago

@danrabbit Conflicts resolved.

worldofpeace commented 4 years ago

CI failure here is anyone's guess

 Dependency accountsservice found: YES 0.6.45
WARNING: pkgconfig variable 'interfacesdir' not defined for dependency accountsservice.
Program create-symlink.py found: YES (/usr/bin/env python3 /__w/default-settings/default-settings/accountsservice/create-symlink.py)
Build targets in project: 0
Found ninja-1.8.2 at /usr/bin/ninja
ninja: Entering directory `build'
ninja: no work to do.
ninja: Entering directory `build'
[0/1] Installing files.
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/mesonbuild/mesonmain.py", line 112, in run
    return options.run_func(options)
  File "/usr/lib/python3/dist-packages/mesonbuild/minstall.py", line 504, in run
    installer.do_install(datafilename)
  File "/usr/lib/python3/dist-packages/mesonbuild/minstall.py", line 340, in do_install
    self.install_subdirs(d) # Must be first, because it needs to delete the old subtree.
  File "/usr/lib/python3/dist-packages/mesonbuild/minstall.py", line 361, in install_subdirs
    self.do_copydir(d, src_dir, full_dst_dir, exclude, mode)
  File "/usr/lib/python3/dist-packages/mesonbuild/minstall.py", line 288, in do_copydir
    raise ValueError('dst_dir must be absolute, got %s' % dst_dir)
ValueError: dst_dir must be absolute, got out/etc/skel/.config/plank
Installing subdir /__w/default-settings/default-settings/plank to out/etc/skel/.config/plank
FAILED: meson-install 
/usr/bin/meson install --no-rebuild
ninja: build stopped: subcommand failed.
worldofpeace commented 4 years ago

cc @jtojnar if you're interested. I'm planning to do some sort of followup to this where the plank dockitems have correct exec's on whatever platform.

decathorpe commented 4 years ago

@worldofpeace if you don't set DESTDIR, I think meson will try to install to /usr/local by default, which should fail :/ That's why I included the DESTDIR environment variable for all CI projects when I first included the "install" step in the test run

I have no idea why a relative path doesn't work in this case - but setting it to $(pwd)/build/out instead of out should make DESTDIR absolute instead of relative, while keeping the effect the same? No idea whether GitHub Actions support that, though.

jtojnar commented 4 years ago

https://github.com/mesonbuild/meson/issues/5207

worldofpeace commented 4 years ago

@worldofpeace if you don't set DESTDIR, I think meson will try to install to /usr/local by default, which should fail :/ That's why I included the DESTDIR environment variable for all CI projects when I first included the "install" step in the test run

I have no idea why a relative path doesn't work in this case - but setting it to $(pwd)/build/out instead of out should make DESTDIR absolute instead of relative, while keeping the effect the same? No idea whether GitHub Actions support that, though.

I see, I will keep that in mind when adding CI to projects here that don't have it already :+1: I will try doing this in another push.

worldofpeace commented 4 years ago

Travis CI will always be expectant here, since it's used on master. CI does pass in the github action.

danirabbit commented 4 years ago

@worldofpeace I'd like to move this forward, but it requires packaging changes. Can you review/merge this branch? https://github.com/worldofpeace/default-settings/pull/1

worldofpeace commented 4 years ago

@worldofpeace I'd like to move this forward, but it requires packaging changes. Can you review/merge this branch? worldofpeace#1

Woah, it looks like you opened that a long time ago. Sorry about that. My notifications are out of control :smile: I can try to integrate this.

worldofpeace commented 4 years ago

How can I test the packaging for debian?

danirabbit commented 4 years ago

Testing locally with debuild -i -us -uc -b, it looks like we still have to fix some things in packaging:

danirabbit commented 4 years ago

I'm getting a warning: WARNING: pkgconfig variable 'interfacesdir' not defined for dependency accountsservice

Looks like the other files probably aren't created because meson isn't building anything :upside_down_face:

worldofpeace commented 4 years ago

I'm getting a warning: WARNING: pkgconfig variable 'interfacesdir' not defined for dependency accountsservice

Looks like the other files probably aren't created because meson isn't building anything upside_down_face

I grabbed a .deb from ubuntu with pkgconfig file and it appears to have that entry.

danirabbit commented 4 years ago

@worldofpeace which version of Ubuntu? The deb I grabbed for bionic seems to not have it