Skip to content

Commit 7e3165c

Browse files
author
Youssef Abou-Kewik
committed
Merge branch 'mainline' of https://github.com/GNOME/meld
2 parents 0f2e2ad + 76452a3 commit 7e3165c

55 files changed

Lines changed: 11124 additions & 9835 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitlab-ci.yml

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,49 @@
1+
include: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml'
2+
13
image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master
24

35
stages:
46
- check
7+
- test
58
- build
9+
- deploy
610

711
variables:
8-
DEPENDENCIES: python3
9-
python3-pip
10-
python3-pytest
11-
python3-gobject
12-
gobject-introspection
13-
gtk3
14-
gtksourceview4
15-
intltool
16-
glib2-devel
12+
BUNDLE: "meld-dev.flatpak"
1713

18-
.linux-common: &linux-common
19-
before_script:
20-
- dnf update -y
21-
- dnf install -y $DEPENDENCIES
14+
flatpak:
15+
extends: .flatpak
16+
stage: build
17+
variables:
18+
MANIFEST_PATH: "data/org.gnome.MeldDevel.json"
19+
MESON_ARGS: "-Dprofile=Devel"
20+
FLATPAK_MODULE: "meld"
21+
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
22+
APP_ID: "org.gnome.MeldDevel"
2223

23-
lint:
24-
stage: check
25-
script:
26-
- dnf install -y git
27-
- pip3 install -r dev-requirements.txt
28-
- pre-commit run --all-files --show-diff-on-failure
24+
nightly:
25+
extends: '.publish_nightly'
26+
dependencies:
27+
- 'flatpak'
2928

30-
linux-pytest:
29+
.pythonchecks:
3130
stage: check
31+
tags: # test in the same org.gnome.Sdk environment that is used for creating flatpaks
32+
- flatpak
3233
script:
33-
- py.test-3 test/
34-
<<: *linux-common
34+
- flatpak run --share=network --filesystem=`pwd` --env=PATH=$PATH:/var/data/python/bin --command=sh org.gnome.Sdk -c 'pip3 install --user -r dev-requirements.txt; $PYTHON_CHECK_COMMAND'
3535

36-
linux-build:
37-
stage: build
38-
script:
39-
- python3 setup.py build
40-
<<: *linux-common
36+
lint:
37+
extends: .pythonchecks
38+
variables:
39+
PYTHON_CHECK_COMMAND: "pre-commit run --all-files --show-diff-on-failure"
40+
41+
pytest:
42+
extends: .pythonchecks
43+
variables:
44+
PYTHON_CHECK_COMMAND: "pytest"
4145

42-
.mingw-common: &mingw-common
46+
.mingw-common:
4347
stage: build
4448
tags: # select gitlab runners with specific tag (unrelated to git repo tags)
4549
- win32
@@ -58,13 +62,13 @@ linux-build:
5862
allow_failure: true
5963

6064
mingw64-dist:
65+
extends: .mingw-common
6166
variables:
6267
MSYS2_ARCH: x86_64
6368
MSYSTEM: MINGW64
64-
<<: *mingw-common
6569

6670
mingw32-dist:
71+
extends: .mingw-common
6772
variables:
6873
MSYS2_ARCH: i686
6974
MSYSTEM: "MINGW32"
70-
<<: *mingw-common

MANIFEST.in

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@ recursive-include data/icons/hicolor/symbolic *.svg
55

66
recursive-include help *.page *.xml *.po
77

8-
recursive-include meld/resources README *.ui *.xml *.png
8+
recursive-include meld/resources README *.ui *.xml *.png *.css
99

1010
include MANIFEST.in
1111
include meld.doap
1212
include data/org.gnome.meld.appdata.xml.in
13-
include data/meld.css
1413
include data/org.gnome.meld.desktop.in
1514
include data/mime/org.gnome.meld.xml.in
1615
include data/org.gnome.meld.gschema.xml

README.md

Lines changed: 35 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Requirements
2323

2424
And following packages with GObject introspection:
2525

26-
* GLib 2.36 (meld install also needs GLib binaries like glib-compile-schemas)
26+
* GLib 2.36
2727
* Pango
2828
* PangoCairo
2929
* GTK+ 3.20
@@ -33,77 +33,61 @@ And following packages with GObject introspection:
3333
Build requirements
3434
------------------
3535

36-
System packages:
37-
38-
* intltool
39-
* itstool
40-
* xmllint
41-
42-
Python packages:
43-
44-
* distro
36+
* Python 3.6
37+
* Meson 0.48
38+
* Ninja
39+
* gettext
40+
* GLib 2.36 and its development utilities such as `glib-compile-schemas`
4541

46-
Building Windows MSIs requires:
42+
For Windows build requirements, see `mingw-common` section `.gitlab-ci.yml`
4743

48-
* cx_Freeze 5
49-
* pywin32/pypiwin32 (optional, for storing version info in Meld.exe)
5044

5145
Running
5246
-------
5347

54-
Meld can be run directly from this source tree directory. Just type:
55-
56-
* `bin/meld`
57-
58-
Alternatively, you can install Meld system-wide by running:
48+
You *do not* need to build Meld in order to run it. Meld can be run directly
49+
from this source directory by running:
5950

60-
* `python3 setup.py install`
51+
```sh
52+
$ bin/meld
53+
```
6154

62-
or if you're on Ubuntu, instead try:
55+
Unix users should get Meld from their distribution package manager, or from
56+
[Flathub](https://flathub.org/).
6357

64-
* `python3 setup.py install --prefix=/usr`
58+
Windows users should download the provided MSIs on the
59+
[Meld home page](https://meldmerge.org/).
6560

66-
...but you should probably just get a RPM/deb/installer instead, depending on
67-
your system. Meld packages are available for just about every \*nix
68-
distribution.
69-
70-
For Windows users, MSIs are available from the Meld home page. Also if all
71-
dependencies are installed manually, running from source tree is supported:
72-
* `python3.exe bin/meld`
73-
74-
For OSX users, Meld can be installed on OSX using MacPorts/Fink/etc. There are
75-
also unofficial native builds available for older releases. See the wiki for
76-
details.
61+
OSX users can install Meld using Homebrew (or Macports, Fink, etc.), or there
62+
are unofficial native builds available from the
63+
[Meld for OSX](https://yousseb.github.io/meld/) project.
7764

7865

7966
Building
8067
--------
8168

82-
Meld uses standard distutils for building. It supports anything that distutils
83-
supports, and little else.
84-
85-
Additional hacks are added to make life easier for packagers where required,
86-
such as:
87-
88-
* Passing `--no-update-icon-cache` will stop Meld from running
89-
`gtk-update-icon-cache` post-install
90-
* Passing `--no-compile-schemas` will stop Meld from trying to compile
91-
gsettings schemas post-install
92-
93-
These arguments need to be passed to `setup.py` itself, *not* to the install
94-
command. In other words, do this:
69+
Meld uses [meson](https://mesonbuild.com/) build system. Use the following
70+
commands to build Meld from the source directory:
9571

96-
python3 setup.py --no-compile-schemas install
72+
```sh
73+
$ meson _build
74+
$ cd _build
75+
$ ninja
76+
```
9777

98-
**not** this:
78+
You can then install Meld system-wide by running:
9979

100-
python3 setup.py install --no-compile-schemas
80+
```sh
81+
$ ninja install
82+
```
10183

102-
Windows installer can be built with command
84+
A Windows installer can be built with command
10385

104-
C:\Python34\python.exe setup_win32.py bdist_msi
86+
```powershell
87+
C:\Python34\python.exe setup_win32.py bdist_msi
88+
```
10589

106-
that creates file `dist/Meld-VERSION-ARCH.msi`
90+
which will create the file `dist/Meld-VERSION-ARCH.msi`.
10791

10892

10993
Developing

0 commit comments

Comments
 (0)