-
Notifications
You must be signed in to change notification settings - Fork 281
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
Snap packaging #468
Snap packaging #468
Conversation
Thanks for contributing! Unfortunately there were the following style issues with your Pull Request:
Please follow git commit message guidelines (you can use This message was auto-generated by https://gitcop.com |
a30a804
to
9e88cda
Compare
Thanks for contributing! Unfortunately there were the following style issues with your Pull Request:
Please follow git commit message guidelines (you can use This message was auto-generated by https://gitcop.com |
61a98f5
to
30d2db6
Compare
All dependencies are in the I'm also a bit confused about why you submit something you yourself say is non-functional as a PR? The traditional way is to work on your git branch and submit a PR only when it is ready to be merged... |
I've successfully build the dependencies using the deps directory(though still barely launch-able), will push it tonight
I hope it to be noticed to avoid rebuilding wheels as I recently saw you mentioning it in another issue, anyway I'm fine with the tradition. |
I'm even more confused: then why did you close this PR? You can use |
@vslavik Just be a bit too coward, no worries |
I've prepared and pushed my current progress. What's working:
What's not:
Many problems probably related to incomplete desktop-gtk3 part integration, still looking at it. |
I noticed that there's a template repo to track the progress: I wonder if it's sane to follow the snapcrafter's protocol instead? |
Meaning what, exactly? |
I mean follow the instructions from the snapcrafters template, I am like, jumped to the 20th task on the list or something. |
Just repeating what you said using different words doesn't explain anything I'm afraid. I am opposed to having it as separate repo if that's what you're asking. If it is not, I have no idea what you are asking :( |
96c5f2d
to
f785a8d
Compare
That's the answer I'm looking for. Apologies for any annoyance. I've added the missing integration of the desktop-gtk3 part, however, it now crashes on launch with the ibus integration somehow. Still looking at it. |
0c702f1
to
9e67ad3
Compare
That's not a good idea. Why?
Probably some extra permission is required to pass the
Is there no way to build from the git submodule associated with this particular checkout? Also, it makes sense to use static packages here... |
Thanks for reviewing.
The program crashes on launch at my end when using GTK3 for an unknown reason (related with input method framework, ibus) and at the time I thought that the checked out wxWidgets is GTK2 only, will drop it once the crash issue is sorted out.
I did notice the other desktop entry file, will try to integrate it when I find out how to do it properly.
It's definitely possible, looking into it.
I'm not completely sure how to achieve this, but will check it out. |
I think (based on docs) that this can be fixed by adding
Can you be more specific?
This thread suggests to have a "fake" app for this purpose in the apps list, associated with the other desktop file. If that's not feasible, then I can also fix it by merging both desktop files into one (this requires some extra changes to the code that I'd prefer to avoid, but is probably doable). |
Apologies for the ignorance.
I did notice the doc but didn't trust it due to the lacking mention in
Will do.
I'll note it down once I encounter it again. |
a6299b3
to
bd7a77f
Compare
Thanks for contributing! Unfortunately there were the following style issues with your Pull Request:
Please follow git commit message guidelines (you can use This message was auto-generated by https://gitcop.com |
bd7a77f
to
8fd6906
Compare
Known issues
|
snappy/.gitignore
Outdated
*.snap | ||
|
||
## Ignore stages autogeneraged files | ||
/*/parts/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.gitignore
in a subdirectory should use relative, not absolute (starting with /
) paths to ignorable files...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Refer to gitignore(5):
Patterns read from a .gitignore file in the same directory as the path, or in any parent directory, with patterns in the higher level files (up to the toplevel of the work tree) being overridden by those in lower level files down to the directory containing the file. These patterns match relative to the location of the .gitignore file. A project normally includes such .gitignore files in its repository, containing patterns for files generated as part of the project build.
I also have confirmed that the ignore rules are effective.
override-build: | | ||
./configure | ||
make -j$(nproc) | ||
sudo make install |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's no reason build should use sudo
, I'm pretty sure.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will be fixed in the next push.
That would indicate either misinstallation (some icon files omitted) or Poedit being unaware of its install location. That can be fixed by setting
Including the binary in the snap would be one fix, but I think this is OK to ignore. I'll just disable this feature, it's not terribly useful anyway.
That's pretty clear sign of miscompilation: different, binary-incompatible, version of GTK+ used to compile wxGTK and Poedit, and/or a runtime incompatible binary (which shouldn't normally be possible to link, but well). I'll try to have a look at those issues myself if you don't beat me to it. I also don't understand why you have two snaps there — instead of having one for the last release and one for git |
I'll probably drop the entire ccache thing in the next push, the whole point of using ccache is to speed up development of the packaging(part rebuild time), as the implementation is close to complete it is no longer helpful but complicate things. |
This patch patches the Autoconf files so that the poedit.1 manpage won't be built during building snap. Manpages in a snap are not (yet) accessible from regular snap user[1] and the Asciidoc build dependency will pull great amount of texlive packages, making the build a lot longer. [1] https://forum.snapcraft.io/t/support-for-man-pages/2299
This avoids the lengthy clone from the remote.
Ccache is originally incorporated as a measure to speed up the rebuild process(to determine whether the recipe works), as the packaging is nearly completed it is no longer that useful but complicates the recipe. This patch drops the ccache part and also changes the behavior of the gcc-6 recipe to create the faked GCC commands symbolic links at stage phase instead of build phase for MacOS filesystem compatibility. Signed-off-by: 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com>
460eb3e
to
34a211d
Compare
snap/snapcraft.yaml
Outdated
@@ -82,12 +82,11 @@ parts: | |||
- patches | |||
- wxwidgets | |||
|
|||
source: git://github.com/vslavik/poedit.git | |||
source: .git |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand this at all. Why not do source: .
and build from the checkout?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The source-type: local
(when specifying source
as .
) copies all non-snapcraft-specific(/snap, /parts, /stage, and /prime) files and folders to the part's src
folder (/parts/_part_name_/src
), including the entire /.git
folder and ignored files of the VCS.
When using source-type: git
snapcraft only clones and check out the repository specified by source
keyword, which is considered cleaner than source: .
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It also prevents use of local modifications (bad for debugging) and most importantly, fetches a tree that is unrelated to the current snapcraft file, because it fetches the master. This means non-reproducible builds from unknown revision (same problem with the enchant part currently). That's An Enormously Bad Thing ™ — I already changed this to use reproducible builds locally.
It's rather bizarre that one cannot move the many snapcraft build directories to some location outside of the tree...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That makes sense, thanks for the explanation! Note there are source-commit
and source-checksum
keywords to have further control over the checked out part sources.
Given the transient nature of builds in containers, it never made much sense, but there are more issues with symlinks. Apparently, it's a Docker issue.
I rebased on |
I've fowarded the issue to the seemingly responsible project: |
Yes, exactly.
:( |
I have an update on the Crowdin links: Snapcraft pretty much ignores the command line and does not expand
Can't understand it yet, it seems everybody is getting this error and blaming pretty much anything on it, with typical shotgun debugging advice on how to address. Do you get the error on launch too? |
Pretty much no, I might have seen this in other snaps but not this one. |
I just gave you write access to my forking repo, you might want to force push your progress here (if you're into it, of course). |
Reading through wxGTK sources, this is due to a failed |
Add support for building binary snap packages with snapcraft. Snaps are containerised software packages that are simple to create and install. They auto-update and are safe to run. And because they bundle their dependencies, they work on all major Linux systems without modif- ication. -- from Snapcraft website Refer-to: Snapcraft - Snaps are universal Linux packages <https://snapcraft.io/> Signed-off-by: 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com>
By default PR branches can be pushed by repo owner already, but I instead pushed it to a branch in this repo: https://github.com/vslavik/poedit/tree/linux-snap I also published it to the store (http://snapcraft.io/poedit), meaning you can safely remove If you don't see anything wrong with the snap, I'll merge it. Right now I'm aware of two small issues: 1. only for amd64 (I'll address that) and 2. in Software Center, the package is showing as "poedit" even though the metadata name is "Poedit 2" and even though your snap, as well as anything else in the store, is using the correct name... 🤷♂️ |
Add support for building binary snap packages with snapcraft. Snaps are containerised software packages that are simple to create and install. They auto-update and are safe to run. And because they bundle their dependencies, they work on all major Linux systems without modif- ication. -- from Snapcraft website Refer-to: Snapcraft - Snaps are universal Linux packages <https://snapcraft.io/> Signed-off-by: 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com>
I'll unpublish that snap shortly after the last obsoletion notice update.
I've installed the snap and tested a bit, no (new) issues noticed so far. Go ahead if you wish.
Mine as well (KDE Discover 5.11.0, KDE neon): I doubt the current snap store backend support fetching the store metadata... |
Signed-off-by: 林博仁(Buo-ren, Lin) <Buo.Ren.Lin@gmail.com>
Configure process errored, assuming that the config.* files are outdated. Signed-off-by: 林博仁(Buo-ren, Lin) <Buo.Ren.Lin@gmail.com>
7a95587
to
3a3afc4
Compare
Add support for building binary snap packages with snapcraft. Snaps are containerised software packages that are simple to create and install. They auto-update and are safe to run. And because they bundle their dependencies, they work on all major Linux systems without modif- ication. -- from Snapcraft website Refer-to: Snapcraft - Snaps are universal Linux packages <https://snapcraft.io/> Signed-off-by: 林博仁(Buo-ren Lin) <Buo.Ren.Lin@gmail.com>
Thanks!
It has to get them from somewhere and it's not the full huge snap package… I think this is just a caching issue, things went back to normal after I logged off and in again.
FWIW, I'm not seeing that. I have now merged the snap support in 7b902ba — the content of this PR being squashed into 2d80574. Thanks a lot for your help with this! |
It's my pleasure. You might want to:
|
Yeah, I should… I'm giving it a bit of time for beta testing by more users, to see if there are any issues, and will update information about it a bit later (~a week or so I think, depending on how it goes). |
Currently not buildable due to missing Boost dependency etc. , the packages from the PPA might help.