Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add build and run controls for Flatpak based projects #940

Open
wants to merge 89 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 80 commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
cc6f3bc
Add run and stop button
meisenzahl Nov 15, 2020
f76b1da
Add ProjectManager
meisenzahl Feb 6, 2021
f060c56
Merge remote-tracking branch 'upstream/master' into add-button-to-run…
meisenzahl Feb 6, 2021
2a66e7c
Satisfy linter
meisenzahl Feb 6, 2021
c99319f
Add TODO
meisenzahl Feb 6, 2021
fac9c1f
Remove stop action
meisenzahl Feb 6, 2021
4dd8568
Make calls async
meisenzahl Feb 6, 2021
3dba84e
Separate run button
meisenzahl Feb 6, 2021
13c4b61
Prevent running same project multiple times
meisenzahl Feb 6, 2021
808dcb6
Run application when hitting F5
meisenzahl Feb 6, 2021
be4d37d
Merge branch 'master' into add-button-to-run-project
meisenzahl Feb 7, 2021
afedcd0
Provide project command outputs with signals
meisenzahl Feb 7, 2021
1d188e9
Add build action
meisenzahl Feb 7, 2021
04d1003
Add stop button
meisenzahl Feb 7, 2021
fa5d865
Satisfy linter
meisenzahl Feb 7, 2021
50b9f63
Set sensitive for build, run and stop buttons
meisenzahl Feb 7, 2021
5929826
Select project when opening folder
meisenzahl Feb 7, 2021
fe58bdc
Merge branch 'master' into add-button-to-run-project
meisenzahl Apr 14, 2021
2f99339
Merge branch 'master' into add-button-to-run-project
meisenzahl Apr 15, 2021
d8fed23
Merge branch 'master' into add-button-to-run-project
meisenzahl Apr 18, 2021
21fc311
Restrict support to build and run projects to Flatpak
meisenzahl Apr 18, 2021
e006310
Satisfy linter
meisenzahl Apr 18, 2021
8a1422a
Refactor variable names
meisenzahl Apr 19, 2021
a86ac53
Read command from Flatpak manifest
meisenzahl Apr 19, 2021
a8a4eff
Add support for JSON
meisenzahl Apr 19, 2021
b6bc311
Merge branch 'master' into add-button-to-run-project
meisenzahl Apr 21, 2021
08b432f
Merge branch 'master' into add-button-to-run-project
meisenzahl Apr 22, 2021
0bfee34
Merge branch 'master' into add-button-to-run-project
meisenzahl Apr 23, 2021
eb25136
Update path of build directory
meisenzahl Apr 23, 2021
f12c1ea
Merge branch 'add-button-to-run-project' of github.com:meisenzahl/cod…
meisenzahl Apr 23, 2021
0a4549e
Merge branch 'master' into add-button-to-run-project
meisenzahl Apr 23, 2021
2666385
Update tooltip text with project name
meisenzahl Apr 24, 2021
f456d2c
Merge branch 'add-button-to-run-project' of github.com:meisenzahl/cod…
meisenzahl Apr 24, 2021
4970a07
Refactor
meisenzahl Apr 25, 2021
03dfb71
Set sensitivity based on whether the project is a Flatpak
meisenzahl Apr 25, 2021
01e542c
Merge branch 'master' into add-button-to-run-project
meisenzahl Apr 26, 2021
5d4e492
Merge branch 'master' into add-button-to-run-project
meisenzahl Apr 27, 2021
95531d6
Use `get_root_folder ()`
meisenzahl Apr 27, 2021
9134c14
Merge branch 'master' into add-button-to-run-project
meisenzahl Apr 29, 2021
38b7d1c
Merge branch 'master' into add-button-to-run-project
meisenzahl May 1, 2021
d4534fb
Merge branch 'master' into add-button-to-run-project
meisenzahl May 2, 2021
e7cd4c9
Merge branch 'master' into add-button-to-run-project
meisenzahl May 3, 2021
8282a56
Merge branch 'master' into add-button-to-run-project
May 4, 2021
8d3d019
Apply suggestions from code review
meisenzahl May 4, 2021
38a8f60
Fix
meisenzahl May 4, 2021
e6b1a77
Satisfy linter
meisenzahl May 4, 2021
304764f
Show error dialog
meisenzahl May 4, 2021
285a655
Satisfy linter
meisenzahl May 4, 2021
50619fe
Show last line as secondary_text
meisenzahl May 5, 2021
aefd1c1
Merge branch 'master' into add-button-to-run-project
meisenzahl May 5, 2021
59c696b
Merge branch 'master' into add-button-to-run-project
meisenzahl May 5, 2021
210c5ba
Merge branch 'master' into add-button-to-run-project
May 11, 2021
b19d7ab
Merge branch 'master' into add-button-to-run-project
meisenzahl May 13, 2021
e6a8e2f
Use Gee.ArrayList
meisenzahl May 13, 2021
8f52a02
Show error dialog only if project was not stopped on purpose
meisenzahl May 13, 2021
d32af7e
Merge branch 'master' into add-button-to-run-project
meisenzahl May 13, 2021
b46b4d4
Merge branch 'master' of https://github.com/elementary/code into add-…
May 19, 2021
8f36133
Merge branch 'master' into add-button-to-run-project
meisenzahl May 20, 2021
7839ef3
Merge branch 'master' into add-button-to-run-project
meisenzahl May 22, 2021
988a959
Merge branch 'master' into add-button-to-run-project
meisenzahl May 25, 2021
febe59e
Merge branch 'master' into add-button-to-run-project
meisenzahl May 26, 2021
6fd3143
Merge branch 'master' into add-button-to-run-project
meisenzahl Jul 17, 2021
3bf8399
Try to package flatpak-builder
meisenzahl Jul 17, 2021
24f76f4
Merge branch 'master' into add-button-to-run-project
Jul 17, 2021
583ff71
Merge branch 'master' into add-button-to-run-project
meisenzahl Jul 20, 2021
5473f78
Try to package flatpak-builder
meisenzahl Jul 20, 2021
5f9c6fc
Add ostree
meisenzahl Jul 20, 2021
8c6ec8e
Merge branch 'master' into add-button-to-run-project
meisenzahl Jul 29, 2021
13397aa
Merge branch 'master' into add-button-to-run-project
meisenzahl Aug 13, 2021
f52aacb
Merge branch 'master' into add-button-to-run-project
meisenzahl Aug 14, 2021
8532e9f
Merge branch 'master' into add-button-to-run-project
cassidyjames Aug 17, 2021
cbc9bcc
update manifest
Marukesu Aug 17, 2021
d956655
Merge branch 'master' into add-button-to-run-project
meisenzahl Aug 30, 2021
5feda44
Merge branch 'master' into add-button-to-run-project
Oct 13, 2021
78f461a
Check if dependencies are installed and if running flatpaked
meisenzahl Oct 14, 2021
1a72820
Merge branch 'master' into add-button-to-run-project
meisenzahl Oct 14, 2021
830fd53
Satisfy linter
meisenzahl Oct 14, 2021
07c3b88
Merge branch 'master' into add-button-to-run-project
meisenzahl Oct 14, 2021
6c1eaae
ChooseProjectButton: Set path for ProjectManager
meisenzahl Oct 14, 2021
4a48931
Merge branch 'master' into add-button-to-run-project
Oct 15, 2021
1ffdc12
Merge branch 'master' into add-button-to-run-project
meisenzahl Oct 16, 2021
7c3d7dc
ProjectManager: Refactor access to is_running_flatpaked
meisenzahl Oct 16, 2021
4f4c667
MainWindow: Stop build process when closing Code
meisenzahl Oct 16, 2021
69aa4dd
ProjectManager: Hide output of run_command_sync
meisenzahl Oct 16, 2021
2fe9d2a
Add Terminal widget from Installer
meisenzahl Oct 17, 2021
242fc11
MainWindow: Add Terminal to show output of ProjectManager
meisenzahl Oct 17, 2021
71bef7c
MainWindow: Set visibility of terminal revealer
meisenzahl Oct 17, 2021
13c6b9f
MainWindow: Use Gtk.Paned to enable resize of terminal output
meisenzahl Oct 17, 2021
2842bfa
Refactor
meisenzahl Oct 17, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: Install Dependencies
run: |
apt update
apt install -y exuberant-ctags libeditorconfig-dev libgail-3-dev libgee-0.8-dev libgit2-glib-1.0-dev libgranite-dev libgtk-3-dev libgtksourceview-4-dev libgtkspell3-3-dev libhandy-1-dev libpeas-dev libsoup2.4-dev libvala-dev libvte-2.91-dev meson valac
apt install -y exuberant-ctags libeditorconfig-dev libgail-3-dev libgee-0.8-dev libgit2-glib-1.0-dev libgranite-dev libgtk-3-dev libgtksourceview-4-dev libgtkspell3-3-dev libhandy-1-dev libjson-glib-dev libpeas-dev libsoup2.4-dev libvala-dev libvte-2.91-dev meson valac
- name: Build
env:
DESTDIR: out
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ You'll need the following dependencies:
* libgtkspell3-3-dev
* libgranite-dev >= 6.0.0
* libhandy-1-dev >= 0.90.0
* libjson-glib-dev
* libpeas-dev
* libsoup2.4-dev
* libvala-0.34-dev (or higher)
Expand Down
21 changes: 21 additions & 0 deletions flatpak/fuse-2.9.2-namespace-conflict-fix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
diff -up fuse-2.9.2/include/fuse_kernel.h.conflictfix fuse-2.9.2/include/fuse_kernel.h
--- fuse-2.9.2/include/fuse_kernel.h.conflictfix 2013-06-26 09:31:57.862198038 -0400
+++ fuse-2.9.2/include/fuse_kernel.h 2013-06-26 09:32:19.679198365 -0400
@@ -88,12 +88,16 @@
#ifndef _LINUX_FUSE_H
#define _LINUX_FUSE_H

-#include <sys/types.h>
+#ifdef __linux__
+#include <linux/types.h>
+#else
+#include <stdint.h>
#define __u64 uint64_t
#define __s64 int64_t
#define __u32 uint32_t
#define __s32 int32_t
#define __u16 uint16_t
+#endif

/*
* Version negotiation:
25 changes: 25 additions & 0 deletions flatpak/fuse-disable-sys-mount-under-flatpak.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
From 1ec935f4abecd08957affc7b21bae6bf5be78931 Mon Sep 17 00:00:00 2001
From: Christian Hergert <[email protected]>
Date: Thu, 12 Apr 2018 01:47:57 -0700
Subject: [PATCH] libfuse: disable sys mount under flatpak

---
lib/mount.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/lib/mount.c b/lib/mount.c
index 7a18c11..1667db2 100644
--- a/lib/mount.c
+++ b/lib/mount.c
@@ -392,6 +392,9 @@ static int fuse_mount_sys(const char *mnt, struct mount_opts *mo,
int fd;
int res;

+ /* disable in flatpak */
+ return -2;
+
if (!mnt) {
fprintf(stderr, "fuse: missing mountpoint parameter\n");
return -1;
--
2.17.0.rc2
9 changes: 9 additions & 0 deletions flatpak/fusermount-wrapper.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/sh

if [ -z "$_FUSE_COMMFD" ]; then
FD_ARGS=
else
FD_ARGS="--env=_FUSE_COMMFD=${_FUSE_COMMFD} --forward-fd=${_FUSE_COMMFD}"
fi

exec flatpak-spawn --host --forward-fd=1 --forward-fd=2 --forward-fd=3 $FD_ARGS fusermount "$@"
95 changes: 94 additions & 1 deletion io.elementary.code.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,36 @@ runtime-version: '6'
sdk: io.elementary.Sdk
command: io.elementary.code
finish-args:
- '--require-version=1.0.0'
- '--filesystem=host'

# flatpak access
- '--filesystem=/var/lib/flatpak'
- '--filesystem=~/.local/share/flatpak'

- '--share=ipc'
- '--share=network'
- '--socket=fallback-x11'
- '--socket=wayland'
- '--allow=devel'

- '--talk-name=org.gtk.vfs.*'
- '--talk-name=org.gnome.SettingsDaemon'
- '--talk-name=org.elementary.Contractor'
- '--talk-name=org.freedesktop.Flatpak'

- '--metadata=X-DConf=migrate-path=/io/elementary/code/'
build-options:
env:
MOUNT_FUSE_PATH: ../tmp/
V: '1'
cleanup:
- '/include'
- '/lib/pkgconfig'
- '/lib/cmake'
- '/lib/girepository-1.0'
- '/share/gir-1.0'
- '/share/man'
- '/share/vala'
- '*.a'
- '*.la'
Expand Down Expand Up @@ -61,7 +74,6 @@ modules:
- '-DBUILD_TESTING:BOOL=OFF'
- '-DCMAKE_INSTALL_LIBDIR:PATH=/app/lib'
cleanup:
- '/share/man'
- '/share/doc'
sources:
- type: git
Expand Down Expand Up @@ -119,6 +131,87 @@ modules:
url: https://github.com/universal-ctags/ctags.git
tag: p5.9.20201101.0

- name: flatpak
config-opts:
- '--disable-documentation'
- '--disable-seccomp'
- '--disable-sandboxed-triggers'
- '--disable-system-helper'
- '--with-system-install-dir=/var/lib/flatpak'
- '--sysconfdir=/var/run/host/etc'
cleanup:
- '/bin/flatpak-bisect'
- '/bin/flatpak-coredumpctl'
- '/etc/profile.d'
- '/libexec'
- '/lib/systemd'
- '/share/dbus-1/interfaces/org.freedesktop.*'
- '/share/dbus-1/services/org.freedesktop.*'
- '/share/fish'
- '/share/flatpak/triggers'
- '/share/gdm'
- '/share/zsh'
post-install:
- 'cp /usr/bin/update-mime-database /app/bin'
- 'cp /usr/bin/update-desktop-database /app/bin'
sources:
- type: git
url: https://github.com/flatpak/flatpak
tag: '1.11.2'
modules:
- name: libfuse
config-opts:
- 'UDEV_RULES_PATH=/app/etc/udev/rules.d'
- 'INIT_D_PATH=/app/etc/init.d'
cleanup:
- '/bin/ulockmgr_server'
post-install:
- 'install -m a+rx fusermount-wrapper.sh /app/bin/fusermount'
sources:
- type: archive
url: https://github.com/libfuse/libfuse/releases/download/fuse-2.9.9/fuse-2.9.9.tar.gz
sha256: d0e69d5d608cc22ff4843791ad097f554dd32540ddc9bed7638cc6fea7c1b4b5
- type: patch
path: flatpak/fuse-2.9.2-namespace-conflict-fix.patch
- type: patch
path: flatpak/fuse-disable-sys-mount-under-flatpak.patch
- type: file
path: flatpak/fusermount-wrapper.sh
- name: ostree
config-opts:
- '--disable-man'
- '--without-libsystemd'
cleanup:
- /bin
- /etc/grub.d
- /etc/ostree
- /libexec
- /share/ostree
sources:
- type: git
url: https://github.com/ostreedev/ostree
branch: v2021.1
- name: pyparsing
buildsystem: simple
build-commands:
- 'pip3 install --no-index --find-links="file://${PWD}" --prefix=${FLATPAK_DEST} pyparsing'
sources:
- type: file
url: https://files.pythonhosted.org/packages/b9/b8/6b32b3e84014148dcd60dd05795e35c2e7f4b72f918616c61fdce83d27fc/pyparsing-2.3.1.tar.gz
sha256: 66c9268862641abcac4a96ba74506e594c884e3f57690a696d21ad8210ed667a

- name: flatpak-builder
sources:
- type: git
url: https://github.com/flatpak/flatpak-builder
tag: '1.0.14'
modules:
- name: yaml
sources:
- type: git
url: https://github.com/yaml/libyaml
tag: '0.2.5'

- name: code
buildsystem: meson
config-opts:
Expand Down
2 changes: 2 additions & 0 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ gee_dep = dependency('gee-0.8', version: '>=0.8.5')
gtk_dep = dependency('gtk+-3.0', version: '>=3.6.0')
granite_dep = dependency('granite', version: '>=6.0.0')
handy_dep = dependency('libhandy-1', version: '>=0.90.0')
json_dep = dependency('json-glib-1.0')
gtksourceview_dep = dependency('gtksourceview-4')
peas_dep = dependency('libpeas-1.0')
peasgtk_dep = dependency('libpeas-gtk-1.0')
Expand All @@ -51,6 +52,7 @@ dependencies = [
gtk_dep,
granite_dep,
handy_dep,
json_dep,
gtksourceview_dep,
peas_dep,
peasgtk_dep,
Expand Down
16 changes: 15 additions & 1 deletion src/FolderManager/FileView.vala
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ namespace Scratch.FolderManager {
private GLib.Settings settings;

public signal void select (string file);
public signal void select_project (string path);
public signal void close_all_docs_from_path (string path);

// This is a workaround for SourceList silliness: you cannot remove an item
Expand Down Expand Up @@ -53,7 +54,18 @@ namespace Scratch.FolderManager {
}

if (item is FileItem) {
select (((FileItem) item).file.path);
var file_item = (FileItem) item;
var project_path = file_item.file.path;

select (project_path);

var item_for_path = (Item?)(expand_to_path (project_path));
if (item_for_path != null) {
var search_root = item_for_path.get_root_folder ();
if (search_root is ProjectFolderItem) {
select_project (search_root.file.file.get_path ());
}
}
meisenzahl marked this conversation as resolved.
Show resolved Hide resolved
}
}

Expand All @@ -73,6 +85,8 @@ namespace Scratch.FolderManager {
return;
}

select_project (folder.path);

add_folder (folder, true);
}

Expand Down
Loading