profile
viewpoint
Merlijn Sebrechts galgalesh Ghent University Ghent, belgium merlijn.sebrechts.be PhD Student and Teaching Assistant at Ghent University - IDLab - imec

push eventgalgalesh/freeplane-1

Merlijn Sebrechts

commit sha 14cccabfaa8e55829ed56017841b35dfcbfda397

fix version to before mac builds done on Linux

view details

push time in 17 hours

push eventsnapcrafters/climate-trail

Merlijn Sebrechts

commit sha 8febfc5d341bfcabbc8ce97c1ef1c89405dae23a

Version 1.6

view details

push time in 14 days

push eventIBCNServices/ghtt

Merlijn Sebrechts

commit sha 823da037190f655e2fc6e15d5858664048d74a80

more fixes

view details

Merlijn Sebrechts

commit sha 13cb8093bc8a0cabdfe95ca181ad8006e99036ef

add snap install instructions

view details

Merlijn Sebrechts

commit sha c1e3e367c0c6d93fd0b2696766449a52eb3112cf

fixed formatting of email and cli output

view details

push time in 15 days

CommitCommentEvent

issue closedsnapcrafters/mattermost-desktop

Theme issues -- cannot see menu

Using fresh (all defaults) install of Ubuntu 19.04 I installed mattermost from snap and the menu items on the menu bar are not visible. Screenshot from 2019-04-03 23-41-00

closed time in 22 days

skewty

issue commentsnapcrafters/mattermost-desktop

Theme issues -- cannot see menu

This should be fixed in the latest version. Please reopen the issue if you still experience it.

skewty

comment created time in 22 days

create barnchIBCNServices/ghtt

branch : master

created branch time in a month

created repositoryIBCNServices/ghtt

`ghtt` helps teachers manage courses on GitHub. It supports searching for student code and creating PR's to update assignment code.

created time in a month

push eventgalgalesh/freeplane-1

Merlijn Sebrechts

commit sha af8b0e027ac5a960e844bb9a9faef8de896d8b18

add launcher and fix clean build

view details

push time in a month

push eventgalgalesh/freeplane-1

Merlijn Sebrechts

commit sha 9c1ccd37e35f09adf2e72f1ed6e7d96bc5fbfd55

removed unused files

view details

push time in a month

push eventgalgalesh/freeplane-1

Merlijn Sebrechts

commit sha b628c6358c49fec2444b4977da3bfcc7bab56f28

switch to remote source

view details

Merlijn Sebrechts

commit sha 01fd3ec26db734f1488e94797382d27bba358366

switch to neon extension

view details

push time in a month

issue commentVioletGiraffe/file-commander

Add artifacts to TRavis for us to download

I'm the current maintainer for the Krita snap. We're in the process of switching to the kde-neon snapcraft extension, which I expect to be released this or next week.

You can find the latest version of the Krita snap here: https://invent.kde.org/merlijnsebrechts/krita/tree/neon-extension This will be merged into Krita master when snapcraft 3.9 releases.

I recommend using the extension, since it greatly improves startup time, snap size and desktop integration. Let me know if you have any issues, I'm happy to help.

gusbemacbe

comment created time in a month

pull request commentsnapcore/snapcraft

extensions: skip icon cache creation for theme and runtime snaps

I changed the PR according to @jhenstridge's comments and retested the performance improvements.

galgalesh

comment created time in a month

push eventgalgalesh/snapcraft

Merlijn Sebrechts

commit sha ad19851de7ca0a30b947c3fef6a0aca7577be118

extensions: skip icon cache creation for theme and runtime snaps Some icon themes, such as cursor-only themes, can't have a cache. However, desktop-exports still tries to create a cache for every icon theme, which is surprisingly expensive. It takes up to 30% of the time of a cold desktop-launch run. This is partly due to the script creating additional directories and softlinks during this process. This commit skips icon cache creation for everything in the theme and runtime snaps because those should already contain caches. With this commit, the cold start time of the desktop-launch script is reduced by ~30%.

view details

push time in a month

push eventgalgalesh/snapcraft

Merlijn Sebrechts

commit sha a090ff15b21e5c3baf8416a7f0f846f54a4d0655

extensions: speed up desktop-launch by not calling mkdir -p Calling mkdir -p is relatively expensive because it starts an external process. This commit uses bash to check if the directory exists to avoid calling mkdir -p altogether in a hot start. This saves ~20% execution time in a hot start and has no significant impact on a cold start.

view details

push time in a month

push eventgalgalesh/snapcraft

Merlijn Sebrechts

commit sha a15988e395702205d537053e3504f3d931623f15

extensions: speed up desktop-launch by not calling mkdir -p Calling mkdir -p is relatively expensive because it starts an external process. This commit uses bash to check if the directory exists to avoid calling mkdir -p altogether in a hot start. This saves ~20% execution time in a hot start and has no significant impact on a cold start.

view details

push time in a month

pull request commentubuntu/yaru

overwrite softlinks so install-compat can handle multiple builds

I found it by building the gtk-common-themes snap multiple times on my laptop. I hit this issue the second time I built the snap. I was trying some stuff out to reduce the startup time of desktop snaps.

galgalesh

comment created time in a month

created tag0x20/hackerspace-blueprint

taguntagged-d87af8cfcdec395b4530

The Hackerspace Blueprint

created time in a month

push event0x20/hackerspace-blueprint

mrosseel

commit sha 800122d99fe93bf13341d4bc1478108f28d0ef58

Update 6-guidelines.md small fixes

view details

Merlijn Sebrechts

commit sha d82f66f2b0425a48be058f2afb7f3dc967e02e54

Merge pull request #36 from mrosseel/patch-1 Update 6-guidelines.md

view details

push time in a month

PR merged 0x20/hackerspace-blueprint

Update 6-guidelines.md

small fixes

+2 -2

0 comment

1 changed file

mrosseel

pr closed time in a month

pull request commentsnapcore/snapcraft

extensions: skip icon cache creation when icon theme specifies so

Excluding the icon themes from the platform snap seems easy. However, excluding the icon themes from gtk-common-themes is more tricky because multiple snaps can provide icons in $datadir/icons/.

  1. Excluding $datadir/icons entirely risks excluding icon themes from other content snaps that don't provide the caches. (This will become more relevant when the "greedy" interfaces stuff is implemented)
  2. Generating the exclusion list at build-time risks having an exclusion list that is out of sync with gtk-common-themes. Any icon theme added to gtk-common-themes after an application snap is built will not be excluded.
  3. Generating the exclusion list at run-time seems tricky to me. I'm not aware of any way a snap can query which directories originate from which content snap. Moreover, we need to make sure that this query code doesn't add a significant overhead to the startup of the snap.

As far as I know, the icon cache is not actually required. It just makes the icon theme more efficient. So, in a sense, option 1. does not pose a significant risk. Moreover, I don't think it's a stretch to assume all snaps providing icon themes will include caches for those themes.

@jhenstridge Do you see any issues with just excluding $datadir/icons entirely?

galgalesh

comment created time in a month

issue commentmesonbuild/meson

Is there a way we can create a soft link with in the install directory?

As an example, the Yaru theme for Ubuntu used to be called Communitheme. In order to keep backwards compatibility, we have an option to also create a Communitheme folder which has a number of symlinks to the Yaru folder.

This is currently done using a script. It would be nice if we could do this in meson instead.

lkammath

comment created time in a month

PR opened ubuntu/yaru

overwrite softlinks so install-compat can handle multiple builds

install-compat.sh currently fails the second time you build Yaru because the softlinks already exist.

This PR fixed that by forcing ln to overwrite the existing softlinks.

+3 -3

0 comment

1 changed file

pr created time in a month

create barnchgalgalesh/yaru

branch : idempotent-install-compat

created branch time in a month

pull request commentsnapcore/snapcraft

extensions: skip icon cache creation when icon theme specifies so

@cjp256

Out of curiosity, is there a way that we could programmatically determine which themes won't yield caches (safely)?

There isn't an efficient way, afaik. You could try to figure out if the theme contains any cache-able icons, but /snap/gtk-common-themes/current/share/icons/hicolor/, for example, appears to have an entire directory tree without any actual icons, so you'd have to traverse the entire tree in order to figure out that it doesn't need caching.

I don't know if that's a bug in that theme or if it's supposed to be that way. Maybe @jhenstridge can comment on this?

galgalesh

comment created time in a month

push eventgalgalesh/snapcraft

Merlijn Sebrechts

commit sha ba2261a7b3bbc99b6764bf7eed86db9b7193a5a7

extensions: speed up desktop-launch by not calling mkdir -p Calling mkdir -p is relatively expensive because it starts an external process. This commit uses bash to check if the directory exists to avoid calling mkdir -p altogether in a hot start. This saves ~20% execution time in a hot start and has no significant impact on a cold start.

view details

push time in a month

Pull request review commentsnapcore/snapcraft

extensions: speed up desktop-launch by not calling mkdir -p

 # shellcheck disable=SC2034 START=$(date +%s.%N) +function ensure_dir_exists() {+  [ -d "$1" ] ||  mkdir -p "$@"

I use $@ so that this function can pass additional flags to mkdir. This is needed for the following line.

https://github.com/snapcore/snapcraft/blob/45e6b956cf8f9904f7994bb5492c4aec97a82604/extensions/desktop/common/desktop-exports#L136

This means that the first argument to ensure_dir_exists must always be the path, and the following arguments are not allowed to be paths. Is it ok to just document this in a comment above the function?

galgalesh

comment created time in a month

PR opened snapcore/snapcraft

extensions: speed up desktop-launch by not calling mkdir -p
  • [x] Have you followed the guidelines for contributing?
  • [x] Have you signed the CLA?
  • [x] Have you successfully run ./runtests.sh static?
  • [x] Have you successfully run ./runtests.sh tests/unit?

Calling mkdir -p is relatively expensive because it starts an external process. This commit uses bash to check if the directory exists to avoid calling mkdir -p altogether in a hot start. This saves ~20% execution time in a hot start and has no significant impact on a cold start.

As an example; the hot startup time of the SDLPoP snap using gtk-3-28-1804 with fix:

0.069s /snap/core/7917/usr/lib/snapd/snap-confine
0.008s /usr/bin/realpath
0.008s /usr/bin/realpath
0.008s /usr/bin/realpath
0.008s /usr/bin/realpath
0.008s /usr/bin/realpath
0.008s /usr/bin/realpath
0.009s /usr/bin/realpath
0.008s /bin/rm
0.147s /snap/sdlpop/x1/snap/command-chain/desktop-launch

without fix:

0.071s /snap/core/7917/usr/lib/snapd/snap-confine
0.009s /bin/mkdir
0.009s /bin/mkdir
0.009s /bin/mkdir
0.008s /usr/bin/realpath
0.008s /usr/bin/realpath
0.008s /usr/bin/realpath
0.008s /usr/bin/realpath
0.009s /bin/mkdir
0.183s /snap/sdlpop/x1/snap/command-chain/desktop-launch
+9 -5

0 comment

2 changed files

pr created time in a month

push eventgalgalesh/snapcraft

Merlijn Sebrechts

commit sha 45e6b956cf8f9904f7994bb5492c4aec97a82604

extensions: speed up desktop-launch by not calling mkdir -p Calling mkdir -p is relatively expensive because it starts an external process. This commit uses bash to check if the directory exists to avoid calling mkdir -p altogether in a hot start. This saves ~20% execution time in a hot start and has no significant impact on a cold start.

view details

push time in a month

create barnchgalgalesh/snapcraft

branch : ensure-dir-exists

created branch time in a month

push eventsnapcrafters/foliate

Merlijn Sebrechts

commit sha ce5d05b36ab72fad4a0c8d98d618c2afae1933dc

Fix broken merge

view details

push time in a month

push eventsnapcrafters/foliate

Merlijn Sebrechts

commit sha 8170fd2ccdb161d3c4d8ee3fc38378de39b5ad8c

switch to gjs from gnome-platform snap

view details

Merlijn Sebrechts

commit sha 182e812728caf64288cf70ce947db0e4e9634947

point to gjs library and gjs girepository

view details

Merlijn Sebrechts

commit sha 324dd3d8b03f340b099c30c6a4bbcc19a380cd5d

layout pointing to gjs

view details

Merlijn Sebrechts

commit sha ace48c9168e0654e345ce0aac958e740898068e0

Merge branch 'master' into gjs-via-gnome-platform

view details

Merlijn Sebrechts

commit sha 9abe491ad99a51eb8ace86179e85b2c6b8b4a6b0

Merge pull request #1 from snapcrafters/gjs-via-gnome-platform [WIP] Gjs via gnome platform

view details

push time in a month

PR merged snapcrafters/foliate

[WIP] Gjs via gnome platform

Use gjs and gir1.2-webkit2-4.0 from gnome platform.

Depends on: https://gitlab.gnome.org/Community/Ubuntu/gnome-3-28-1804/merge_requests/1

+7 -3

0 comment

1 changed file

galgalesh

pr closed time in a month

push eventsnapcrafters/foliate

Merlijn Sebrechts

commit sha 4c71fb8339565dcc57e30499ea56251cb7804b45

try to fix buid.snapcraft.io

view details

Merlijn Sebrechts

commit sha 6293879d54dc0261c36f4bfbf84f6276d4ea055f

AppStream metadata

view details

Merlijn Sebrechts

commit sha 53dabbde8a1cbdaf81b05a6be57108d17285d556

reordered slots

view details

Merlijn Sebrechts

commit sha 75c87a484c2be6f0b1f5de274e27f2733f02cb80

Add title and license

view details

Merlijn Sebrechts

commit sha ace48c9168e0654e345ce0aac958e740898068e0

Merge branch 'master' into gjs-via-gnome-platform

view details

push time in a month

PR opened snapcore/snapcraft

extensions: skip icon cache creation when icon theme specifies so
  • [x] Have you followed the guidelines for contributing?
  • [x Have you signed the CLA?
  • [x] Have you successfully run ./runtests.sh static?
  • [x] Have you successfully run ./runtests.sh tests/unit?

Some icon themes, such as cursor-only themes, can't have a cache. However, desktop-exports still tries to create a cache for every icon theme, which is surprisingly expensive. It takes ~30% of the time of a cold desktop-launch run. This is partly due to the script creating additional directories and softlinks during this process.

This PR skips icon cache creation for themes that have the skip-icon-cache file in their root directory. Icon theme content snaps can use this mechanism to signal that the icon cache is already generated or should not be generated for that theme.

If the gtk-common-themes snap sets skip-icon-cache for all themes, the cold start time of the desktop-launch script is reduced by ~30%.

+1 -1

0 comment

1 changed file

pr created time in a month

create barnchgalgalesh/snapcraft

branch : desktop-launch-performance

created branch time in a month

issue commentubuntu/snapcraft-desktop-helpers

Slow vlc snap start up due to update-mime-database

Hi @anthonywong

Thanks for this investigation!

It's not clear to me how you end up without a ~/.config/user-dirs.locale file. This file should always be present. Do you have any idea why this was not the case?

anthonywong

comment created time in a month

created tag0x20/hackerspace-blueprint

taguntagged-9cbb465b57bd561cf563

The Hackerspace Blueprint

created time in a month

issue comment0x20/hackerspace-blueprint

Add 1-week period to re-put an issue on the agenda

Closing this.

I'm not super comfortable with adding stuff like this to the blueprint because it's not supposed to be a rulebook, and this looks too much like a rule.

Some decisions can be put back on the agenda whenever you want, and some decisions should not be discussed a second time. If a member systematically makes bad judgements regarding this, then you have an issue with that member, not an issue with "the rules".

galgalesh

comment created time in a month

push event0x20/hackerspace-blueprint

sasja

commit sha 206362b96512c4dd8f7d7121e923c85009c439f5

add reason why applicant should come to a meeting

view details

Merlijn Sebrechts

commit sha d4fb491443bab285eb7cb02684648fd6b6570a28

Merge pull request #35 from Sasja/master add reason why applicant should come to a meeting

view details

push time in a month

PR closed tengu-team/layer-sensu-base

review
+258 -0

0 comment

11 changed files

galgalesh

pr closed time in a month

create barnchgalgalesh/sdlpop

branch : gnome-extension

created branch time in 2 months

push eventgalgalesh/snapcraft

Sergio Schvezov

commit sha 93503ac6f785c481a65603dffc19a4d14792b78c

meta: support the case of a plug without a default provider Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>

view details

Claudio Matsuoka

commit sha c933b7890a4df8a6d27375a1094538228e7bda13

cli: add remote build (#2500) Add the capability of dispatching a source tree to be built remotely in Launchpad. After the build is complete, retrieve the resulting snap packages or the log files in case of error. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>

view details

Claudio Matsuoka

commit sha 52dbab5cf17645fb1e2f5da8ae381fe7dec4e0bb

remote build: add warning before sending data (#2567) All data sent to remote builders will be publicly available, so warn users and ask for confirmation. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>

view details

Claudio Matsuoka

commit sha c6b1d9ee6f9925dcf27132b2f74cdcca39e76df6

remote build: retrieve build log files (#2574) Also download build logs from Launchpad when the build succeeds. The log file name is based on the project name and build architecture. Numbered suffixes are added if the file already exists. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>

view details

Claudio Matsuoka

commit sha 5800e0aff60817066af2a60021245dce0dee6836

remote build: don't send log files back to remote Retrieved build logs are now saved using the project name, so update our filters to prevent sending them back to the remote builder as part of the local project files. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>

view details

Claudio Matsuoka

commit sha 41c7adaf970391512a10dec6200bb4e769e0bbe3

remote build: handle git push in detached head state (#2564) When dispatching a remote build job using --git and we're currently in detached head state, branch name retrieval raises an exception. Fix that by returning HEAD if detached head is detected. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>

view details

Claudio Matsuoka

commit sha d381d921fd0f1b18fcb30e2c993dfcfa753c988a

remote build: add option to skip public upload question (#2590) Refactor public upload confirmation to use click option prompt and add common tty-aware classes to handle user input. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>

view details

Chris Patterson

commit sha 73fd95e86737fdf8f19a19f65f54fd0c51f7077d

remote-build: detect early build errors (#2642) The easiest-to-reproduce example I have come across is to simply ship the build repository to launchpad without a snapcraft.yaml. In this case, snapcraft now fails with the following message from launchpad: ``` Sorry, an error occurred in Snapcraft: Remote builder failed with error: 'Cannot find snapcraft.yaml in https://cjp256@git.launchpad.net/~cjp256/+git/snapcraft-6cf35d52abc44b19a021b100cb883c8a/ master' ``` The original assumption was that the builder was busy, but now we can determine if that's truly the case by checking if status is still "Pending". - A new exception for RemoteBuilderError(err) added. - Additional sanity checks added for cases that shouldn't occur. - Added and updated launchpad tests. Also, switch DictAttr to FakeLaunchpadObjects in tests. The launchpad objects generally have lookup behavior of dictionaries, but keys are also accessible via instance fields. DictAttr provided the same behavior, FakeLaunchObject firms up the implementation a bit. Use it for recently introduced fake implementations. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha a95fc4911d7fe9106fec92478701e7b840f4be71

fixtures/SnapcraftYaml: rewrite snapcraft.yaml on updates Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha ab7c81969718e2ef10788f1d676a1e83245d3b44

remote-build: fully preserve local sources Fetch all "local" project parts and archive them inside of a git repo for launchpad to build with. Packaged sources are compressed with gzip'd tar files to prevent any potential git-tracking-unfriendly sources from being added to the created git repository. - rewrite snapcraft.yaml shipped to launchpad to reflect source handling - drop Repo class - drop --git option - Update "Worktree" class to manage the project's working tree and the creation of source repository that may be used by remote builders. Support gitification of the packaged source repository for remote builders that utilize it, i.e. launchpad. - Raise error if base is not used, or suppported by remote-build. - Raise error if `version-script` is used, it's being deprecated in favour of snapcraftctl set-version scriptlet. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 18165047812b24f2cb9dae59802f8fcf714ee9c9

remote-build: introduce --package-all-sources flag By default, remote-build will package up local sources for the remote builder. In cases where part sources may be in private repositores (firewall, vpn, authentication, etc.), the user may now specify --package-all-sources to pull and package all project sources that the remote builder may not be able to access. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 548bd7c6f5472467d9cd3982984bc7aa7fc1282b

git: add init, add, commit, push, version, check_if_installed functions Will be utilized for git functionality required for remote-build. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha a117bc121ea2e2ebe1797e734de351d69735958f

remote-build/launchpad: pivot to git source handler - Drop use of GitPython. - Add test to test push_source_tree. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 592787d8f6f2cc9f2ed5248b8237b067f931a7bf

remote-build: use project name in build-id for launchpad git repo Incorporate the project name into the build-id so it's identifiable when looking at the list of snaps from the launchpad web portal. When building `figlet`, instead of having a git repo like: - snapcraft-891d00183565470496c42f4bdaed4388 It would now be: - snapcraft-figlet-891d00183565470496c42f4bdaed4388 Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 04a0d9331a587401023a2057f86204154ec84195

remote-build: error if --user is required When initializing LaunchpadClient, lookup user information from snapcraft config. If not present, and user not passed in, raise error to inform user --user is required. I effectively broke this behavior in 4253354cf3f995da19f1a568ffcaaa3a1c3359d3 because this was done in login(), but not consistent with push_source_tree(). - Rename self.user -> self._user for consistency. - Modify login() and push_source_tree() to use saved username. - Move launchpad init up before worktree preparation so it fails soonest if --user was required. - Shuffle config handling bits into _load_snapcraft_config() and _update_snapcraft_config(). - Update unit tests. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Sergio Schvezov

commit sha d2b36b2f4d77da464bd887c553bd38f8b9ce048e

remote build: switch from core to core18 snapcraft on edge is now on core18. Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>

view details

Chris Patterson

commit sha a0fc3a227b47f5a81e03b5c317482d73963aa9fb

requirements: add lazr.restfulclient dependency for launchpad Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha ee107f8c5e0dde0c3046123e66d0b7fdd8660024

windows: update snapcraft.spec for new remote-build dependencies lazr.restfulclient, lazr.url, and wadllib have data files that need to be collected. Fixes appveyor build issue. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 44fda6c074bf05951379007dafbf5a82ecfc5ccb

remote-build: make --user required and drop config file handling Upcoming work on snapcraft config handling will address this aspect in the near future. For now, just make `--user` required. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 6c9187e214d2b6dfc328d332fbd0721f4ebd7157

remote-build: only prepare project if starting build Don't create a worktree or push to the git repo when `--recover` or `--status` are used. Create `start_build(...)` method to remote.py and move the logic for starting a fresh build into it. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

push time in 2 months

push eventgalgalesh/snapcraft

Merlijn Sebrechts

commit sha 5488ac248612f939ced8b94c8d87a05d15e2c3b4

extensions: kde-neon: add icon and sound themes Unlike its name implies, the cursor, icon and sound themes in the gtk-common-themes snap are also applicable to Qt/KDE applications. This fixes the issue where applications using this extension have a weird pixelated cursor on default Ubuntu.

view details

push time in 2 months

push eventgalgalesh/snapcraft

Merlijn Sebrechts

commit sha da0289c069e753da856ab9fd29bec2b553863f93

extensions: kde-neon: add icon and sound themes Unlike its name implies, the cursor, icon and sound themes in the gtk-common-themes snap are also applicable to Qt/KDE applications. This fixes the issue where applications using this extension have a weird pixelated cursor on default Ubuntu.

view details

push time in 2 months

Pull request review commentsnapcore/snapcraft

extensions: kde-neon: add icon and sound themes

 def __init__(self, *, extension_name: str, yaml_data: Dict[str, Any]) -> None:         platform_snap = _PLATFORM_SNAP[yaml_data.get("base")]         self.root_snippet = {             "plugs": {+                "icon-themes": {+                    "interface": "content",+                    "target": "$SNAP/data-dir/icons",+                    "default-provider": "gtk-common-themes:icon-themes",

I removed the slot specification but I don't see any difference in the resulting snap. It seems snapcraft strips the slot specification before writing snap.yaml.

Is there a bug report or more information about @kenvandine his PR?

galgalesh

comment created time in 2 months

push eventgalgalesh/snapcraft

Sergio Schvezov

commit sha 93503ac6f785c481a65603dffc19a4d14792b78c

meta: support the case of a plug without a default provider Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>

view details

Claudio Matsuoka

commit sha c933b7890a4df8a6d27375a1094538228e7bda13

cli: add remote build (#2500) Add the capability of dispatching a source tree to be built remotely in Launchpad. After the build is complete, retrieve the resulting snap packages or the log files in case of error. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>

view details

Claudio Matsuoka

commit sha 52dbab5cf17645fb1e2f5da8ae381fe7dec4e0bb

remote build: add warning before sending data (#2567) All data sent to remote builders will be publicly available, so warn users and ask for confirmation. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>

view details

Claudio Matsuoka

commit sha c6b1d9ee6f9925dcf27132b2f74cdcca39e76df6

remote build: retrieve build log files (#2574) Also download build logs from Launchpad when the build succeeds. The log file name is based on the project name and build architecture. Numbered suffixes are added if the file already exists. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>

view details

Claudio Matsuoka

commit sha 5800e0aff60817066af2a60021245dce0dee6836

remote build: don't send log files back to remote Retrieved build logs are now saved using the project name, so update our filters to prevent sending them back to the remote builder as part of the local project files. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>

view details

Claudio Matsuoka

commit sha 41c7adaf970391512a10dec6200bb4e769e0bbe3

remote build: handle git push in detached head state (#2564) When dispatching a remote build job using --git and we're currently in detached head state, branch name retrieval raises an exception. Fix that by returning HEAD if detached head is detected. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>

view details

Claudio Matsuoka

commit sha d381d921fd0f1b18fcb30e2c993dfcfa753c988a

remote build: add option to skip public upload question (#2590) Refactor public upload confirmation to use click option prompt and add common tty-aware classes to handle user input. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>

view details

Chris Patterson

commit sha 73fd95e86737fdf8f19a19f65f54fd0c51f7077d

remote-build: detect early build errors (#2642) The easiest-to-reproduce example I have come across is to simply ship the build repository to launchpad without a snapcraft.yaml. In this case, snapcraft now fails with the following message from launchpad: ``` Sorry, an error occurred in Snapcraft: Remote builder failed with error: 'Cannot find snapcraft.yaml in https://cjp256@git.launchpad.net/~cjp256/+git/snapcraft-6cf35d52abc44b19a021b100cb883c8a/ master' ``` The original assumption was that the builder was busy, but now we can determine if that's truly the case by checking if status is still "Pending". - A new exception for RemoteBuilderError(err) added. - Additional sanity checks added for cases that shouldn't occur. - Added and updated launchpad tests. Also, switch DictAttr to FakeLaunchpadObjects in tests. The launchpad objects generally have lookup behavior of dictionaries, but keys are also accessible via instance fields. DictAttr provided the same behavior, FakeLaunchObject firms up the implementation a bit. Use it for recently introduced fake implementations. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha a95fc4911d7fe9106fec92478701e7b840f4be71

fixtures/SnapcraftYaml: rewrite snapcraft.yaml on updates Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha ab7c81969718e2ef10788f1d676a1e83245d3b44

remote-build: fully preserve local sources Fetch all "local" project parts and archive them inside of a git repo for launchpad to build with. Packaged sources are compressed with gzip'd tar files to prevent any potential git-tracking-unfriendly sources from being added to the created git repository. - rewrite snapcraft.yaml shipped to launchpad to reflect source handling - drop Repo class - drop --git option - Update "Worktree" class to manage the project's working tree and the creation of source repository that may be used by remote builders. Support gitification of the packaged source repository for remote builders that utilize it, i.e. launchpad. - Raise error if base is not used, or suppported by remote-build. - Raise error if `version-script` is used, it's being deprecated in favour of snapcraftctl set-version scriptlet. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 18165047812b24f2cb9dae59802f8fcf714ee9c9

remote-build: introduce --package-all-sources flag By default, remote-build will package up local sources for the remote builder. In cases where part sources may be in private repositores (firewall, vpn, authentication, etc.), the user may now specify --package-all-sources to pull and package all project sources that the remote builder may not be able to access. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 548bd7c6f5472467d9cd3982984bc7aa7fc1282b

git: add init, add, commit, push, version, check_if_installed functions Will be utilized for git functionality required for remote-build. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha a117bc121ea2e2ebe1797e734de351d69735958f

remote-build/launchpad: pivot to git source handler - Drop use of GitPython. - Add test to test push_source_tree. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 592787d8f6f2cc9f2ed5248b8237b067f931a7bf

remote-build: use project name in build-id for launchpad git repo Incorporate the project name into the build-id so it's identifiable when looking at the list of snaps from the launchpad web portal. When building `figlet`, instead of having a git repo like: - snapcraft-891d00183565470496c42f4bdaed4388 It would now be: - snapcraft-figlet-891d00183565470496c42f4bdaed4388 Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 04a0d9331a587401023a2057f86204154ec84195

remote-build: error if --user is required When initializing LaunchpadClient, lookup user information from snapcraft config. If not present, and user not passed in, raise error to inform user --user is required. I effectively broke this behavior in 4253354cf3f995da19f1a568ffcaaa3a1c3359d3 because this was done in login(), but not consistent with push_source_tree(). - Rename self.user -> self._user for consistency. - Modify login() and push_source_tree() to use saved username. - Move launchpad init up before worktree preparation so it fails soonest if --user was required. - Shuffle config handling bits into _load_snapcraft_config() and _update_snapcraft_config(). - Update unit tests. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Sergio Schvezov

commit sha d2b36b2f4d77da464bd887c553bd38f8b9ce048e

remote build: switch from core to core18 snapcraft on edge is now on core18. Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>

view details

Chris Patterson

commit sha a0fc3a227b47f5a81e03b5c317482d73963aa9fb

requirements: add lazr.restfulclient dependency for launchpad Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha ee107f8c5e0dde0c3046123e66d0b7fdd8660024

windows: update snapcraft.spec for new remote-build dependencies lazr.restfulclient, lazr.url, and wadllib have data files that need to be collected. Fixes appveyor build issue. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 44fda6c074bf05951379007dafbf5a82ecfc5ccb

remote-build: make --user required and drop config file handling Upcoming work on snapcraft config handling will address this aspect in the near future. For now, just make `--user` required. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 6c9187e214d2b6dfc328d332fbd0721f4ebd7157

remote-build: only prepare project if starting build Don't create a worktree or push to the git repo when `--recover` or `--status` are used. Create `start_build(...)` method to remote.py and move the logic for starting a fresh build into it. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

push time in 2 months

create barnchsnapcrafters/mattermost-desktop

branch : gtk3-extension

created branch time in 2 months

pull request commentsnapcore/snapcraft

extensions: kde-neon: add icon and sound themes

@apachelogger

Slightly off-topic but is there a place where I can discuss some issues/rough edges with the kde-neon content snaps and extensions? I started two topics on the forum but I didn't get a reply yet.

  • https://forum.snapcraft.io/t/kde-neon-extension-doesnt-use-kde-frameworks-5-core18-sdk-build-snap/13745
  • https://forum.snapcraft.io/t/kde-neon-extension-libqt5core-so-5-version-qt-5-12-not-found/13744

Or should I just tag you in these kinds of posts?

galgalesh

comment created time in 2 months

pull request commentsnapcore/snapcraft

appstream: extract title and version

@sergiusens

From what I understand, the Snapcraft code is already generic enough to use any metadata you extract. Specifically, the _adopt_info and _adopt_keys functions in _snap_packaging.py copy every key from the extracted_metadata to the top-level metadata. Building the Foliate snap with this PR seems to confirm that.

(It does require you to use adopt-info in your snapcraft.yaml though)

galgalesh

comment created time in 2 months

push eventgalgalesh/snapcraft

Merlijn Sebrechts

commit sha 1800f3f38828d3e6979c084240b4b70a11813c41

appstream: extract title and version This PR extracts title and version from AppStream's name tag and from the version property of the first release tag. According to the AppStream docs: > name: A human-readable name for this software component. For > example, if the component ID was "libc", its name might be > "GNU Standard C Library". > Each release of the software component should have a <release/> > tag describing it, but at least one release child must be present > for the current release of the software. The release children > should be sorted in a latest-to-oldest order to simplify reading > the metadata file.

view details

push time in 2 months

PR opened snapcore/snapcraft

appstream: extract title and version
  • [x] Have you followed the guidelines for contributing?
  • [x] Have you signed the CLA?
  • [x] Have you successfully run ./runtests.sh static?
  • [x] Have you successfully run ./runtests.sh tests/unit?

This PR extracts title and version from AppStream's name tage and from the version property of the first release tag.

According to the AppStream docs:

<name/> A human-readable name for this software component.

Each release of the software component should have a <release/> tag describing it, but at least one release child must be present for the current release of the software. The release children should be sorted in a latest-to-oldest order to simplify reading the metadata file.

source

This PR assumes the AppStream follows the spec in that the first <release> element describes the latest release. It's possible to check the date and timestamp properties of each release to find the latest, however, parsing the dates is non-trivial:

The date property can have any time in ISO 8601 format as its value and should be present for every release. At least day-level granularity is required, which means that the ISO 8601 string must contain at least a full date (e.g. 2019-08-12).

As a result, we can't simply use strptime because we don't know what the granularity of the date is beforehand. python-dateutil could be used to parse this date, however, I didn't want to add another dependency just to support AppStream files who don't follow the spec.

I looked at a bunch of AppStream files in the wild and they all seem to follow the spec.

I also tested this PR manually with the Foliate snaps: https://github.com/snapcrafters/foliate/pull/4

+105 -0

0 comment

3 changed files

pr created time in 2 months

create barnchgalgalesh/snapcraft

branch : appstream-name-version

created branch time in 2 months

PR opened snapcrafters/foliate

Get title and version from appstream

in anticipation of the snapcraft PR which extracts title and version from AppStream.

+0 -2

0 comment

1 changed file

pr created time in 2 months

create barnchsnapcrafters/foliate

branch : appstream-title-version

created branch time in 2 months

push eventsnapcrafters/foliate

Merlijn Sebrechts

commit sha 75c87a484c2be6f0b1f5de274e27f2733f02cb80

Add title and license

view details

push time in 2 months

PR opened snapcore/snapcraft

Appstream desktop suffix
  • [x] Have you followed the guidelines for contributing?
  • [x] Have you signed the CLA?
  • [x] Have you successfully run ./runtests.sh static?
  • [x] Have you successfully run ./runtests.sh tests/unit?

Some desktop launchers are not found by Snapcraft because their AppStream file doesn't include any launchable entries and the component id does not end in .desktop.

This PR uses component id + ".desktop" as possible desktop file id if no launchables are found and the component id does not have .desktop suffix.

This was originally proposed in https://bugs.launchpad.net/snapcraft/+bug/1778546 but the initial fix did not include appending the suffix.

See https://github.com/snapcrafters/foliate/pull/3/files for an example of a snap using this feature.

+30 -7

0 comment

3 changed files

pr created time in 2 months

push eventgalgalesh/snapcraft

Merlijn Sebrechts

commit sha dab126a338993f2aa39886ebd616b0b631e2ef24

appstream: support legacy ids without desktop suffix If no launchables are found and component id does not have `.desktop` suffix, use the component id + .desktop as possible desktop file id. This is not required per the spec, but some applications such as Foliate use this and other tools such as Flatpak support it. LP: #1778546

view details

push time in 2 months

push eventgalgalesh/snapcraft

Merlijn Sebrechts

commit sha 07fd2e13fef937e9e71c09475644be25660fe4df

appstream: support legacy ids without desktop suffix If no launchables are found and app id does not have `.desktop` suffix, append it. This is not required per the spec, but some applications such as Foliate use this and other tools such as Flatpak support it. LP: #1778546

view details

push time in 2 months

create barnchgalgalesh/snapcraft

branch : appstream-desktop-suffix

created branch time in 2 months

PR opened snapcrafters/foliate

WIP: Remove desktop file mangling

In preparation for snapcraft PR.

The desktop file is now detected and fixed by snapcraft itself.

+0 -4

0 comment

1 changed file

pr created time in 2 months

create barnchsnapcrafters/foliate

branch : appstream-desktop-suffix

created branch time in 2 months

push eventsnapcrafters/foliate

Merlijn Sebrechts

commit sha 53dabbde8a1cbdaf81b05a6be57108d17285d556

reordered slots

view details

push time in 2 months

push eventsnapcrafters/foliate

Merlijn Sebrechts

commit sha 6293879d54dc0261c36f4bfbf84f6276d4ea055f

AppStream metadata

view details

push time in 2 months

pull request commentsnapcore/snapcraft

snapcraft/extractors/setuppy.py: match setuptools metadata keys

I took a stab at fixing this PR, however, I found out that there are multiple issues with using long_description as the description field of a snap: https://github.com/snapcore/snapcraft/pull/2756#issuecomment-544284814

I propose to close this PR, given that there isn't much use for it anymore.

anonymouse64

comment created time in 2 months

PR closed snapcore/snapcraft

WIP: extractors: match setuptools metadata keys
  • [x] Have you followed the guidelines for contributing?
  • [x] Have you signed the CLA?
  • [x] Have you successfully run ./runtests.sh static?
  • [x] Have you successfully run ./runtests.sh tests/unit?

  • Use setuptools' description as snapcraft's summary
  • Use setuptools' long_description as snapcraft's description

Fixes LP https://bugs.launchpad.net/snapcraft/+bug/1813364 See also https://forum.snapcraft.io/t/using-external-metadata/4642/10

This was first proposed in March: https://github.com/snapcore/snapcraft/pull/2518, but the tests failed and the author didn't respond.

+78 -15

1 comment

4 changed files

galgalesh

pr closed time in 2 months

pull request commentsnapcore/snapcraft

WIP: extractors: match setuptools metadata keys

This functionality has a number of issues.

  1. long_description is often the Github README file which starts with explaining how to install the app on Mac, Windows and Linux. Examples: glances, term2048. This is very common because PyPi shows long-description as the homepage of the project.
  2. long_description is often in an incompatible format (rst).
  3. long_description is often too long for the description field
  4. Some project don't use long_description. Which means that this PR might cause existing snaps to fail their builds, if they don't have a description key and setup.py doesn't have long_description. Debugging these issues is non-intuitive given the description/long_description mismatch.
  5. Getting the metadata from setup.py is also an issue in itself because the setup.py file needs to be executed in the exact same way as when the application is built/installed, because this file can require arbitrary modules as dependencies. Snapcraft currently doesn't do that so if the setup.py file imports non-standard modules, then the parse-info logic fails. Moreover, the term2048 project simply refuses to build when I use parse-info. I didn't investigate this further.

In my opinion, issue 1 is bad enough to make this a WONTFIX, because long_description clearly has a different purpose than a snap's description.

galgalesh

comment created time in 2 months

push eventgalgalesh/snapcraft

Merlijn Sebrechts

commit sha cedfb685dada297795d8cd23fbe15bb83e0dc195

extractors: match setuptools metadata keys * Use setuptools' description as snapcraft's summary. * Use setuptools' long_description as snapcraft's description. Fixes LP https://bugs.launchpad.net/snapcraft/+bug/1813364 Co-authored-by: Ian Johnson <ian.johnson@canonical.com>

view details

push time in 2 months

push eventgalgalesh/snapcraft

Merlijn Sebrechts

commit sha 39995cbd526057d615fcc51bc109e8f1243b1b57

extractors: match setuptools metadata keys * Use setuptools' description as snapcraft's summary * Use setuptools' long_description as snapcraft's description Fixes LP https://bugs.launchpad.net/snapcraft/+bug/1813364 Co-authored-by: Ian Johnson <ian.johnson@canonical.com>

view details

push time in 2 months

PR opened snapcore/snapcraft

extractors: match setuptools metadata keys
  • [x] Have you followed the guidelines for contributing?
  • [x] Have you signed the CLA?
  • [x] Have you successfully run ./runtests.sh static?
  • [x] Have you successfully run ./runtests.sh tests/unit?

  • Use setuptools' description as snapcraft's summary
  • Use setuptools' long_description as snapcraft's description

Fixes LP https://bugs.launchpad.net/snapcraft/+bug/1813364 See also https://forum.snapcraft.io/t/using-external-metadata/4642/10

This was first proposed in March: https://github.com/snapcore/snapcraft/pull/2518, but the tests failed and the author didn't respond.

+75 -14

0 comment

3 changed files

pr created time in 2 months

push eventgalgalesh/snapcraft

Merlijn Sebrechts

commit sha 436632db5d7ed3cb34410f55ddb1f55ba00327dd

extractors: match setuptools metadata keys * Use setuptools' description as snapcraft's summary * Use setuptools' long_description as snapcraft's description Fixes LP https://bugs.launchpad.net/snapcraft/+bug/1813364 Co-authored-by: Ian Johnson <ian.johnson@canonical.com>

view details

push time in 2 months

create barnchgalgalesh/snapcraft

branch : bugfix/1813364

created branch time in 2 months

Pull request review commentsnapcore/snapcraft

extensions: kde-neon: add icon and sound themes

 class ExtensionImpl(Extension):     This extension makes it easy to assemble KDE based applications     using the Neon stack. -    The version of Neon used is dependent on the base used to create-    the snap.+    It configures each application with the following plugs:++    \b+    - Common Icon Themes.+    - Common Sound Themes

Fixed, thanks! The gnome extension also had the same issue, I fixed it there too.

galgalesh

comment created time in 2 months

push eventgalgalesh/snapcraft

Merlijn Sebrechts

commit sha 2d2fd0ad7ae1e8788e7168b71c483baa61760b1c

extensions: kde-neon: add icon and sound themes

view details

push time in 2 months

push eventgalgalesh/snapcraft

Chris Patterson

commit sha 18fd2f4a81311c01e1c8cb9b5f1722133c23a496

meta: introduce snap, hook, plug, and slot types Introduce Snap meta for handling reading/writing snap.yaml metadata. Snap incorporates support for first-class classes for plug and slots. Introduces: - generic Snap object - generic Hook object - generic Plug object to support any plug interfaces - extended ContentPlug object for content interfaces - generic Slot object to support any slot interfaces - extended DbusSlot object for dbus interfaces - extended ContentSlot object for content interfaces - A general error for Plug validation - A general error for Slot validation - Add new unit tests for coverage. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 83e94d39026f5970558165e3fab366f0f1b6c36e

application: refactor to work with introduced snap meta objects - Add from_dict() method to instantiate app from dict. - Remove requirement for prime_dir and base at init-time. - Add populate_commands() to initialize commands with prime_dir and base as parameters. - Rename _verify_paths to validate_command_chain_executables(), requiring prime_dir to check against. - Rename get_yaml() to to_dict() - Normalize yaml dict in to_dict() rather than popping keys from app_properties in init. - Make adapter, desktop_file, commands, and command_chain public properties. - Update application tests. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 548e081a92d73abc721c687c69fe25f051a8ae31

command: refactor to work with Snap meta - Rename get_command() to `command` property - Introduce `prime_command()` to massage command given `prime_dir`, `can_use_wrapper`, and `massage_command`. - Introduce `requires_wrapper` property. - Introduce `wrapped_command` property to hold wrapped command instead of overriding command. `write_command_wrapper` will use this instead of command. - Add some function docs for _massage_command to summarize. - Rename generate_wrapper -> write_wrapper for consistency - Update test_command.py tests Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha a1f237c9e855faa5a1214983efde3e6847b76e00

project: instantiate snap meta For now, it just initializes it empty because the yaml configuration data is mangled by Config and others after this. Until we converge to working on snap_meta, we just let Config overwrite the default instance when the data (mostly) ready. There will be other users (e.g. snap packaging) that need to converge as well. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 5ad282c77103c2af1a7e9e23b2cb0ab63e559e9a

project: introduce _get_content_snaps() and _get_provider_content_dirs() Provide an interface for users to query the set of content snaps a project uses, and their installed directories, without having to get into the meta internals. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha efd5a5f360f17bf1ae1955919e83a1aec8ac9fad

project-loader: initialize project._snap_meta when data is updated While project initializes snap-meta, it does so with an empty Snap because the data soon becomes out of date after being mangled by Config. Future refactoring to converge config into project loader will remove the need for this less-than-ideal route. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 4d9cf871811d8b2502db49e4042a135bcfc08e67

runner: install content snaps when installing build snaps Content snaps that are used by snap being built must be installed for performing dependency resolution. Possible future improvements could include an API for more easily querying this information without downloading/installing the snap. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 4fb4e7f025cfe26b4155a8635f8c451f082e3d48

meta: remove create_snap_packaging from init to prevent import loop Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 930b75b5b61fe3b21600eb72c7577acb38745c08

snap-packaging: refactor to use Snap - Remove _command_chain property - Add snap_packaging.finalize_snap_meta_commands() to prime/massage commands. - Add snap_packaging.finalize_snap_meta_command_chain() if prepending the command chain is required. - Add snap_packaging.finalize_snap_meta_version() to ensure snap meta version is updated. - Rename _meta_dir to meta_dir - Add meta_gui_dir property - Remove _compose_snap_yaml() in favor of Snap.write_snap_yaml() - Slightly rework dupe checking given duplication. - Remove _determine_assumes which is now down in snap. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 77328592e9def0e7a49da7af435fc40182f873fb

pluginhandler: refactoring dependency resolution Handling deps as part/staged/prime does not nicely scale to the concept of having an unknown number of content snaps. Refactor to handle any set of directory of which to search for. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 76e8a3f3f1c3f69d957b2806c9387ac3c57e926a

elf: consider content directories for determining dependencies - Ensure LDD uses the correct library paths for resolution. - Improve dependency resolution performance by fist checking if matched path is provided, rather than searching all dirs. - Update crystal plugin update to use arch_triplet param and content directories. - Update pluginhandler to use content_dirs. - Removed redundant if-statement. - Updated elf tests. - Refactor Library, pulling in crawl_for_path. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 36cedd03d100d2c4242181af9a5de2069fe722ad

common: rename get_core_path() to get_installed_snap_path() Functionality is unchanged. The method is not limited to a core snap, so we rename it to be clearer about what it's doing. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 46ecb866266643d8fcd3c05697d61fc0d9b71085

pluginhandler: add some type annotations Indiciate further usage should be of type Project, not ProjectOptions. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha bf35e824965a375ccabf107618a5050ab349f481

fixtures: mock patch Project._get_provider_content_dirs() Unit tests should not be searching installed snaps for contents. Return an empty set as the default behavior. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 10dbbff31fc06f8970e78c67583f6d846006b590

spread tests: update unicode-metadata expect_snap.yaml's ordering Snap has modified the ordering for writing snap.yaml so that it is consistent across all instances. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha b3f58deeeaa975c476ab1d8d24e74ea32177f57e

snap-packaging: do not write command-chain wrapper if there are no apps Move this check into _generate_command_chain(). Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Chris Patterson

commit sha 89571007dd64997c192edf0d01ac6a7ad7f63129

project options: add compatibility shims for tests Required for the mixed usage of Project and ProjectOptions. Now that some places require the use of Project instead of Project Options, tests were failing that only created ProjectOptions. Temporarily place in compat methods which do nothing, but allow the unit tests to run successfully. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

Kyle Fazzari

commit sha f3799a5dcf83c5667cd284b9db7e16703eae7ee5

project_loader: load build-environment after snapcraft environment Currently it's impossible to define a `build-environment` that uses variables defined by snapcraft itself (e.g. `$SNAPCRAFT_PART_INSTALL`), since the `build-environment` is evaluated before snapcraft's environment. Fix this by simply switching the order. Signed-off-by: Kyle Fazzari <kyrofa@ubuntu.com>

view details

Sergio Schvezov

commit sha 155a23255d4d2e01f22a6e2ef26c2627a58b20e4

cli: use click utilities for login prompts Switch away from using getpass and input and instead use the common prompt in snapcraft.cli.echo This work required changes to the tests.unit.commands tests, these tests were simplified during that work. Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>

view details

Chris Patterson

commit sha ed3f32aa3045b6bc63d989f8015d77e767a12b2b

elf: handle missing dependencies not found on system I believe that prior testing involved ldd picking up the host-installed binaries to properly catch which libs are missing. Handle the case where ldd may return "not found" or some other invalid resolution. In those cases, initialize soname_path to soname. - Update load_dependencies so that it does not filter out libraries that are not found. If done, the returned set isn't very useful for determining missing dependencies (unless they managed to get found on host, which is why it has worked thus far). - Refactor ldd into its own method and update it to parse ldd output more reliably. - Add unit test coverage for missing libraries in ldd output. Signed-off-by: Chris Patterson <chris.patterson@canonical.com>

view details

push time in 2 months

create barnchgalgalesh/kcalc

branch : master

created branch time in 2 months

created repositorygalgalesh/kcalc

Code for the kde-neon extension tutorial.

created time in 2 months

create barnchgalgalesh/kcalc

branch : master

created branch time in 2 months

created repositorygalgalesh/kcalc

Code for the kde-neon tutorial

created time in 2 months

PR opened snapcore/snapcraft

extensions: kde-neon: add icon and sound themes
  • [x] Have you followed the guidelines for contributing?
  • [x] Have you signed the CLA?
  • [x] Have you successfully run ./runtests.sh static?
  • [x] Have you successfully run ./runtests.sh tests/unit?

This PR adds the common cursor, icon and sound themes to the kde-neon extension using the gtk-common-themes content snap. Unlike its name implies, the cursor, icon and sound themes are also applicable to Qt/KDE applications.

This fixes the issue where applications using this extension have a weird pixelated cursor on default Ubuntu.

I tested this by building the Krita snap using this extension: https://invent.kde.org/merlijnsebrechts/krita/blob/neon-extension/packaging/linux/snap/snapcraft.yaml Without this PR, the cursor is correct on Kubuntu, but incorrect on Ubuntu. With this PR, the cursor is correct on both flavors.

+38 -4

0 comment

2 changed files

pr created time in 2 months

create barnchgalgalesh/snapcraft

branch : neon-cursors

created branch time in 2 months

push eventsnapcrafters/foliate

Merlijn Sebrechts

commit sha 4c71fb8339565dcc57e30499ea56251cb7804b45

try to fix buid.snapcraft.io

view details

push time in 2 months

fork galgalesh/drawing

A drawing application for the GNOME desktop.

https://maoschanz.github.io/drawing/

fork in 2 months

issue commentcanonical-web-and-design/build.snapcraft.io

"Invalid association handle" when signing in

Thanks @popey it worked immediately on my phone. I tried it a few more times and I get consistent behavior:

  • It doesn't work on my laptop on any browser, even in private mode.
  • It works on my phone on any browser, even in private mode.

Both my phone and laptop use the same WIFI network.

popey

comment created time in 2 months

issue commentcanonical-web-and-design/build.snapcraft.io

"Invalid association handle" when signing in

This issue is till happening for me on every try. I currently have two snaps which I can't publish to the store because of this issue.

popey

comment created time in 2 months

create barnchgalgalesh/snapcraft

branch : bionic-docker

created branch time in 2 months

push eventgalgalesh/galgalesh.github.io

Merlijn Sebrechts

commit sha ed310a5c256e6b53e7244b29b76460d77e4aab83

rebuilding site do okt 10 17:54:31 CEST 2019

view details

push time in 2 months

push eventgalgalesh/merlijns-magical-mind

Merlijn Sebrechts

commit sha f6750f4c6773c0d3562406fc2fe109ef280d7578

added steampunk cyborg

view details

Merlijn Sebrechts

commit sha a2a044573ba45f19582a36a567e10d70c4aacbc1

fixes for new hugo version

view details

push time in 2 months

push eventgalgalesh/galgalesh.github.io

Merlijn Sebrechts

commit sha 5a0ad1a5ffa5c2300fb51febb1ee63e9cc17b958

rebuilding site do okt 10 16:54:33 CEST 2019

view details

push time in 2 months

pull request commentsnapcore/snapcraft

extensions: support using gjs from gnome runtime

I think the test fail might be unreladed. Can I rerun the travis tests?

galgalesh

comment created time in 2 months

issue closedFedoraQt/adwaita-qt

Licensing issue

Hi, I'm part of the community effort to create a new Ubuntu theme and we're really interested in this theme.

We'd like to include this theme in Ubuntu's "default Gnome" session to better support Qt applications and we're thinking of using this theme as the basis for Qt support for our own Communitheme but we're a bit hesitant about the license of the theme engine code, specifically that it's GPLv2 instead of LGPLv2.

Since this theme engine's code gets linked to every Qt application in order to theme it, the application and the theme become a "combined work", which means that the application needs to be GPLv2 compatible. We can't control which applications a user will run, so the theme engine will probably be linked to proprietary applications. This means that we will be infringing on your rights by using this theme. For this reason, most theme engines use LGPL instead of GPL:

I included a detailed explanation of the issues below. It's important to fully comply with the GPL, even inside of the FLOSS community. Sadly, this means that we cannot use this theme in Ubuntu while it is licensed GPL. Are you open to change the license to LGPLv2?

Detailed explanation

This explanation references the GPL FAQ section from the GNU website. I tried to include as much info as possible, let me know if you have further questions.

If you want your program to link against a library not covered by the system library exception, you need to provide permission to do that.

and further

If a library is released under the GPL (not the LGPL), does that mean that any software which uses it has to be under the GPL or a GPL-compatible license?

Yes, because the program actually links to the library. As such, the terms of the GPL apply to the entire combination. The software modules that link with the library may be under various GPL compatible licenses, but the work as a whole must be licensed under the GPL. See also: What does it mean to say a license is “compatible with the GPL”?

source

A theme engine is a library that themes an application so all applications it themes need to be GPL compatible.

What about the system library exception?

The system library exception only works in one way: a GPL application is allowed to link to a proprietary system library. However, this exception does not work the other way around.

Most system libraries either use the GNU Lesser GPL, or use the GNU GPL plus an exception permitting linking the library with anything. These libraries can be used in nonfree programs; but in the case of the Lesser GPL, it does have some requirements you must follow. Some [system] libraries are released under the GNU GPL alone; you must use a GPL-compatible license to use those libraries. But these are normally the more specialized libraries, and you would not have had anything much like them on another platform, so you probably won't find yourself wanting to use these libraries for simple porting.

source

But the theme engine is dynamically linked.

The copyleft text of the GPL applies to all software linked to a GPL work, even dynamically linked software.

Linking a GPL covered work statically or dynamically with other modules is making a combined work based on the GPL covered work. Thus, the terms and conditions of the GNU General Public License cover the whole combination. See also What legal issues come up if I use GPL-incompatible libraries with GPL software?

source

Isn't a theme engine a separate application from the app it themes?

A system incorporating a GPL-covered program is an extended version of that program. The GPL says that any extended version of the program must be released under the GPL if it is released at all. This is for two reasons: to make sure that users who get the software get the freedom they should have, and to encourage people to give back improvements that they make.

To do this validly, you must make sure that the free and nonfree programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.

The difference between [distributing] and “incorporating” the GPL-covered software is partly a matter of substance and partly form. The substantive part is this: if the two programs are combined so that they become effectively two parts of one program, then you can't treat them as two separate programs. So the GPL has to cover the whole thing.

source: I'd like to incorporate GPL-covered software in my proprietary system.

The theme engine runs as part of the same process of the application and the app is linked to it just like it is linked to the GTK or Qt toolkit and just like it is linked to any system library. They do not communicate at an arms length, they are very much intertwined. As a result, the theme engine is "incorporated" into the application.

What about the themes themselves?

The Q&A clearly states that an interpreter and the interpreted application are two separate programs. So a nonfree program is allowed to use a CSS or SVG theme, as long as the license of the theme engine is compatible with the application.

If a programming language interpreter is released under the GPL, does that mean programs written to be interpreted by it must be under GPL-compatible licenses?

When the interpreter just interprets a language, the answer is no. The interpreted program, to the interpreter, is just data; a free software license like the GPL, based on copyright law, cannot limit what data you use the interpreter on. You can run it on any data (interpreted program), any way you like, and there are no requirements about licensing that data to anyone.

closed time in 2 months

galgalesh

issue commentFedoraQt/adwaita-qt

Licensing issue

Qt applications are not not designed to run with this engine, therefore their authors have not designed to combine applications and theme.

I can follow this logic, and this is indeed similar to the logic Canonical uses for ZFS:

And zfs.ko, as a self-contained file system module, is clearly not a derivative work of the Linux kernel but rather quite obviously a derivative work of OpenZFS and OpenSolaris. Equivalent exceptions have existed for many years, for various other stand alone, self-contained, non-GPL kernel modules.

https://ubuntu.com/blog/zfs-licensing-and-linux

According to this logic, an application linked to this theme engine at runtime is not a derivative work of the theme engine, even though the theme engine shares the address space with the application. I consider this issue closed.

galgalesh

comment created time in 2 months

more