diff --git a/60-lightdm-gtk-greeter.conf b/60-lightdm-gtk-greeter.conf
new file mode 100644
index 0000000..6711faf
--- /dev/null
+++ b/60-lightdm-gtk-greeter.conf
@@ -0,0 +1,2 @@
+[Seat:*]
+greeter-session=lightdm-gtk-greeter
diff --git a/fix_arm_compile.patch b/fix_arm_compile.patch
new file mode 100644
index 0000000..c590849
--- /dev/null
+++ b/fix_arm_compile.patch
@@ -0,0 +1,20 @@
+--- a/src/greeterbackground.c
++++ b/src/greeterbackground.c
+@@ -1603,6 +1603,8 @@
+ return surface;
+ }
+
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wcast-align"
+ /* Sets the "ESETROOT_PMAP_ID" property to later be used to free the pixmap */
+ static void
+ set_root_pixmap_id(GdkScreen* screen,
+@@ -1669,6 +1671,7 @@
+ XChangeProperty (display, xroot, atoms[1], XA_PIXMAP, 32,
+ PropModeReplace, (unsigned char *) &xpixmap, 1);
+ }
++#pragma GCC diagnostic pop
+
+ /**
+ * set_surface_as_root:
+
diff --git a/lightdm-gtk-greeter-1.8.5-add-cinnamon-badges.patch b/lightdm-gtk-greeter-1.8.5-add-cinnamon-badges.patch
new file mode 100644
index 0000000..ad8c6b7
--- /dev/null
+++ b/lightdm-gtk-greeter-1.8.5-add-cinnamon-badges.patch
@@ -0,0 +1,158 @@
+diff -uprN lightdm-gtk-greeter-1.8.5-orig/data/badges/cinnamon2d_badge-symbolic.svg lightdm-gtk-greeter-1.8.5/data/badges/cinnamon2d_badge-symbolic.svg
+--- lightdm-gtk-greeter-1.8.5-orig/data/badges/cinnamon2d_badge-symbolic.svg 1970-01-01 01:00:00.000000000 +0100
++++ lightdm-gtk-greeter-1.8.5/data/badges/cinnamon2d_badge-symbolic.svg 2015-02-01 17:53:38.897011000 +0100
+@@ -0,0 +1,75 @@
++
++
++
++
+diff -uprN lightdm-gtk-greeter-1.8.5-orig/data/badges/cinnamon_badge-symbolic.svg lightdm-gtk-greeter-1.8.5/data/badges/cinnamon_badge-symbolic.svg
+--- lightdm-gtk-greeter-1.8.5-orig/data/badges/cinnamon_badge-symbolic.svg 1970-01-01 01:00:00.000000000 +0100
++++ lightdm-gtk-greeter-1.8.5/data/badges/cinnamon_badge-symbolic.svg 2015-02-01 17:53:38.897011000 +0100
+@@ -0,0 +1,75 @@
++
++
++
++
diff --git a/lightdm-gtk-greeter-2.0.7.tar.gz b/lightdm-gtk-greeter-2.0.7.tar.gz
new file mode 100644
index 0000000..6782f22
Binary files /dev/null and b/lightdm-gtk-greeter-2.0.7.tar.gz differ
diff --git a/lightdm-gtk.spec b/lightdm-gtk.spec
new file mode 100644
index 0000000..28b2809
--- /dev/null
+++ b/lightdm-gtk.spec
@@ -0,0 +1,103 @@
+Name: lightdm-gtk
+Version: 2.0.7
+Summary: LightDM GTK Greeter
+Release: 1
+License: GPLv3+
+URL: https://launchpad.net/lightdm-gtk-greeter
+Source0: %url/2.0/%{version}/+download/lightdm-gtk-greeter-%{version}.tar.gz
+
+Source1: 60-lightdm-gtk-greeter.conf
+Patch0: fix_arm_compile.patch
+Patch1: lightdm-gtk_add-language-button-to-layout.patch
+
+# tweak default config
+
+## upstreamable patches
+# https://bugzilla.redhat.com/show_bug.cgi?id=1178498
+# (lookaside cache)
+Patch2: lightdm-gtk-greeter-1.8.5-add-cinnamon-badges.patch
+
+BuildRequires: gettext
+BuildRequires: intltool
+# exo-csource
+BuildRequires: exo-devel
+BuildRequires: pkgconfig(liblightdm-gobject-1)
+BuildRequires: pkgconfig(gtk+-3.0)
+BuildRequires: gobject-introspection-devel
+
+Obsoletes: lightdm-gtk2 < 1.8.5-15
+
+Obsoletes: lightdm-gtk-common < 2.0
+Obsoletes: lightdm-gtk-greeter < 1.1.5-4
+Provides: lightdm-gtk-greeter = %{version}-%{release}
+Provides: lightdm-greeter = 1.2
+
+Requires: lightdm%{?_isa}
+
+# owner of HighContrast gtk/icon themes
+Requires: gnome-themes-standard
+
+# Fix issue with lightdm-autologin-greeter pulled in basic-desktop netinstall.
+# See: https://bugzilla.redhat.com/show_bug.cgi?id=1481192
+Supplements: (lightdm%{?_isa} and lightdm-autologin-greeter)
+
+%description
+A LightDM greeter that uses the GTK3 toolkit.
+
+
+%prep
+%autosetup -n lightdm-gtk-greeter-%{version} -p1
+
+%if 0%{?background:1}
+sed -i.background -e "s|#background=.*|background=%{background}|" \
+ data/lightdm-gtk-greeter.conf
+%endif
+
+
+%build
+%configure \
+ --disable-silent-rules \
+ --disable-static \
+ --disable-libindicator \
+ --enable-at-spi-command="%{_libexecdir}/at-spi-bus-launcher --launch-immediately" \
+ --enable-kill-on-sigterm
+
+%make_build
+
+
+%install
+%make_install
+
+install -m644 -p -D %{SOURCE1} \
+ %{buildroot}%{_datadir}/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf
+
+%find_lang lightdm-gtk-greeter
+
+# create/own GREETER_DATA_DIR
+mkdir -p %{buildroot}%{_datadir}/lightdm-gtk-greeter/
+
+## unpackaged files
+rm -fv %{buildroot}%{_docdir}/lightdm-gtk-greeter/sample-lightdm-gtk-greeter.css
+
+
+%pre
+%{_sbindir}/update-alternatives \
+ --remove lightdm-greeter \
+ %{_datadir}/xgreeters/lightdm-gtk-greeter.desktop 2> /dev/null ||:
+
+
+%files -f lightdm-gtk-greeter.lang
+%license COPYING
+%doc ChangeLog NEWS README
+%doc data/sample-lightdm-gtk-greeter.css
+%config(noreplace) %{_sysconfdir}/lightdm/lightdm-gtk-greeter.conf
+%{_sbindir}/lightdm-gtk-greeter
+%{_datadir}/xgreeters/lightdm-gtk-greeter.desktop
+%dir %{_datadir}/lightdm-gtk-greeter/
+%{_datadir}/icons/hicolor/scalable/places/*badge-symbolic.svg
+%{_datadir}/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf
+
+
+%changelog
+* Fri Sep 25 2020 Luke Yue - 2.0.7-1
+- Initial package
diff --git a/lightdm-gtk.yaml b/lightdm-gtk.yaml
new file mode 100644
index 0000000..879ecc5
--- /dev/null
+++ b/lightdm-gtk.yaml
@@ -0,0 +1,4 @@
+version_control: github
+src_repo: Xubuntu/lightdm-gtk-greeter
+tag_prefix: ^lightdm-gtk-greeter-
+seperator: .
diff --git a/lightdm-gtk_add-language-button-to-layout.patch b/lightdm-gtk_add-language-button-to-layout.patch
new file mode 100644
index 0000000..131980d
--- /dev/null
+++ b/lightdm-gtk_add-language-button-to-layout.patch
@@ -0,0 +1,14 @@
+diff -uprN lightdm-gtk-greeter-2.0.5-orig/src/lightdm-gtk-greeter.c lightdm-gtk-greeter-2.0.5/src/lightdm-gtk-greeter.c
+--- lightdm-gtk-greeter-2.0.5-orig/src/lightdm-gtk-greeter.c 2018-03-15 01:23:15.000000000 +0100
++++ lightdm-gtk-greeter-2.0.5/src/lightdm-gtk-greeter.c 2018-03-26 18:46:48.859193117 +0200
+@@ -99,8 +99,8 @@ static GtkButton *power_ok_button, *p
+ static GtkLabel *power_title, *power_text;
+ static GtkImage *power_icon;
+
+-static const gchar *DEFAULT_LAYOUT[] = {"~spacer", "~spacer", "~host", "~spacer",
+- "~session", "~a11y", "~clock", "~power", NULL};
++static const gchar *DEFAULT_LAYOUT[] = {"~host", "~spacer", "~clock", "~spacer",
++ "~session", "~language", "~a11y", "~power", NULL};
+
+ static const gchar *POWER_WINDOW_DATA_LOOP = "power-window-loop"; /* */
+ static const gchar *POWER_WINDOW_DATA_RESPONSE = "power-window-response"; /* */