spheras / desktopfolder

Bring your Desktop Back to Life
GNU General Public License v3.0
202 stars 41 forks source link

Translations + auto desktop file generation #231

Closed fossfreedom closed 5 years ago

fossfreedom commented 5 years ago

This PR includes the latest translations.

More importantly, the .desktop files are now generated from the translations automatically as part of the build.

For Debian & Ubuntu, the executable name can now be correctly overridden - there is no need to have a patch that breaks each time a new translation is added.

I have had to slightly rename the autostart file - it is now /etc/xdg/autostart/com.github.spheras.desktopfolder-autostart.desktop

This is because meson doesn't allow two generate two targets with the same name i.e. you can't target a generated com.github.spheras.desktopfolder.desktop to both /etc/xdg/autostart and /usr/share/applications

spheras commented 5 years ago

travis is failing. I'm closing the issue and reopening to check again (sometimes fails)

spheras commented 5 years ago

Ok, I see the problem:

data/meson.build:16:0: ERROR: Program(s) ['intltool-merge'] not found or not executable

maybe you could try to install initltool via apt (travis.yml)

before_install:
  - sudo apt install -y intltool

not sure if it will work. Could you try?

fossfreedom commented 5 years ago

I saw that early on intltool was installed - but the same issue at the bottom of the log is occurring.

Where does travis gets its build dependencies from? I don't see intltool in the .travis.yml

spheras commented 5 years ago

mmm, you know, this travis is prepared to build elementary houston scripts:

- npm i -g @elementaryos/houston

I don't know exactly what it does (download code from github, compile and execute some elementary automatic scripts, basically)...

look at this: https://docs.travis-ci.com/user/installing-dependencies/, maybe we could try adding the intltool here instead:

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - libstdc++-5-dev
      - intltool

Note: I realized that ubuntu is installing 'intltool-debian' package by default. I modified the meson.build a bit.

intltool = find_program('/usr/share/intltool-debian/intltool-merge')

and seems to work locally... but you know, it is the absolute path to the "debian" version of intltool. How you see it?

fossfreedom commented 5 years ago

@spheras

No - you should not hard-code the path - that is what find_program is there to work out.

I had a look at the travis log - I don't see any evidence of the package "intltool" being installed in the pbuilder bionic section of the raw log.

intltool is being installed in the initial "trusty" section of the log - so the .travis.yml is setting up the initial docker environment with inttool - so I don't think we should be using "before_install" or the apt section here in .travis.yml

However - when it comes to the debootstrap bionic environment it is not being installed - so I guess the elementary houston script needs somehow to understand that there is a intltool build dependency required.

Anyone in the elementary developer community that can be asked to help?