Snap for Brave Browser

I am trying to build a new brave package. I actually do a lot of work with brave building packages and built the original rpms and debs. I am now trying to revivify our snap packages.

Questions:

  • We haven’t had the best luck from the existing snapcrafters. I wonder how we could post a new version if we need to without their help.

  • I am using the deb as the basis for our snap package. Is this an ok thing to do? Any advantages having it built from the package source?

  • Any idea why I am getting the error,
    "Building brave
    Failed to copy ‘/root/build_brave/parts/brave/build/etc/cron.daily/brave-browser’: it’s a symlink pointing outside the snap.
    Fix it to be valid when snapped and try again.
    Error: not found
    Stopping local:snapcraft-unservilely-thermotaxic-berneice
    "

The error I’m getting is at

Shows the work I’ve done
with the code https://github.com/posix4e/brave/pull/1

The deb file contains the following files
http://termbin.com/6pgq

1 Like

I suspect this is because you have a file at etc/cron.daily/brave-browser which is a symlink pointing outside the snap. The solution is to make it to be valid when snapped and try again. You might want to just omit it entirely because it won’t be used by the system your snap is installed upon. Snaps don’t expose the cron subsystem in that way.

1 Like

Oh you rock daniel! Stupid question what’s the clean way of excluding files?

you can try using the stage keyword:

parts:
    you-part:
        ... # the definition of your part
        stage:
            - '-etc/cron.daily/brave-browser'

however it might be too late in the process for the stage keyword to prevent the failure. If that is the case you can remove it when you pull the source:

parts:
    your-part:
        source: ... # unchanged
        override-pull: |
            snapcraftctl pull # get snapcraft to do the heavy lifting
            rm -f etc/cron.daily/brave-browser # remove the offending file
        ... # the rest of your part

In essence what I did https://github.com/snapcrafters/brave/pull/18. Hopefully the existing maintainer notices and we can get some help testing. Any standard rules of the road for testing stuff like this?

be made to release to ‘edge’
Preparing to push ‘/vagrant/brave/brave.snap’ to the store.
Pushing brave.snap [===============================================================================] 100%
Processing…|
Will need manual review…
The Store automatic review failed.
A human will soon review your snap, but if you can’t wait please write in the snapcraft forum asking for the manual review explicitly.
If you need to disable confinement, please consider using devmode, but note that devmode revision will only be allowed to be released in edge and beta channels.
Please check the errors and some hints below:

  • desktop interfaces (unity7) specified without a corresponding meta/gui/.desktop file. If using snapcraft, please see https://snapcraft.io/docs/build-snaps/metadata#fixed-assets. Otherwise, please provide a desktop file in meta/gui/.desktop (it should reference one of the ‘apps’ from your snapcraft/snap.yaml).

we are good to close. I got it packaged