diff --git a/README.en.md b/README.en.md deleted file mode 100644 index 32bf2f95bb5f798f5ad0cfa0e497aeec0a709ab9..0000000000000000000000000000000000000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# gnome-initial-setup - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index bd15ddbc84328271139e311aaf0019f2c76ff0de..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# gnome-initial-setup - -#### 介绍 -{**以下是码云平台说明,您可以替换此简介** -码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 码云特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 -5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/gnome-initial-setup-3.30.0.tar.xz b/gnome-initial-setup-3.30.0.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..c59913ca1e8524f44c5f74329b6b35005aed1bf7 Binary files /dev/null and b/gnome-initial-setup-3.30.0.tar.xz differ diff --git a/gnome-initial-setup.spec b/gnome-initial-setup.spec new file mode 100644 index 0000000000000000000000000000000000000000..fc9028fd9e272dfee185812ca968b645f6be479f --- /dev/null +++ b/gnome-initial-setup.spec @@ -0,0 +1,74 @@ +Name: gnome-initial-setup +Version: 3.30.0 +Release: 2 +Summary: A easy way to prepare a new system +License: GPLv2+ +URL: https://wiki.gnome.org/Design/OS/InitialSetup +Source0: https://download.gnome.org/sources/gnome-initial-setup/3.30/gnome-initial-setup-%{version}.tar.xz +Source1: vendor.conf +Patch0000: honor-firstboot-disabled.patch + +BuildRequires: krb5-devel desktop-file-utils intltool libpwquality-devel +BuildRequires: pkgconfig(libnm) >= 1.2 pkgconfig(gstreamer-1.0) +BuildRequires: pkgconfig(libnma) >= 1.0 pkgconfig(cheese) +BuildRequires: pkgconfig(accountsservice) pkgconfig(fontconfig) +BuildRequires: pkgconfig(gnome-desktop-3.0) pkgconfig(gweather-3.0) +BuildRequires: pkgconfig(cheese-gtk) >= 3.3.5 pkgconfig(goa-1.0) +BuildRequires: pkgconfig(geocode-glib-1.0) pkgconfig(goa-backend-1.0) +BuildRequires: pkgconfig(gtk+-3.0) >= 3.11.3 pkgconfig(glib-2.0) >= 2.53.0 +BuildRequires: pkgconfig(gio-2.0) >= 2.53.0 pkgconfig(gio-unix-2.0) >= 2.53.0 +BuildRequires: pkgconfig(gdm) pkgconfig(iso-codes) krb5-devel +BuildRequires: pkgconfig(libgeoclue-2.0) >= 2.3.1 pkgconfig(packagekit-glib2) +BuildRequires: pkgconfig(webkit2gtk-4.0) ibus-devel rest-devel polkit-devel +BuildRequires: libsecret-devel autoconf gnome-common + +Requires: gdm geoclue2-libs >= 2.3.1 glib2 >= 2.53.0 polkit-js-engine libgnomekbd +Requires(pre): shadow-utils + +Provides: user(%name) + +%description +After acquiring or installing a new system there are a few essential things to +set up before use. It would be nice if GNOME had a simple, easy, and safe way to +prepare a new system. + +%prep +%autosetup -p1 + +%build +autoreconf -i +%configure --enable-software-sources --with-vendor-conf-file=%{_datadir}/gnome-initial-setup/vendor.conf +%make_build + +%install +%make_install +%delete_la + +desktop-file-validate %{buildroot}%{_sysconfdir}/xdg/autostart/gnome-initial-setup-copy-worker.desktop +desktop-file-validate %{buildroot}%{_datadir}/gdm/greeter/applications/gnome-initial-setup.desktop +desktop-file-validate %{buildroot}%{_datadir}/gdm/greeter/applications/setup-shell.desktop + +install -d %{buildroot}%{_datadir}/gnome-initial-setup +cp %{SOURCE1} %{buildroot}%{_datadir}/gnome-initial-setup/ + +%find_lang gnome-initial-setup + +%pre +useradd -rM -d /run/gnome-initial-setup/ -s /sbin/nologin %{name} &>/dev/null || : + +%files -f gnome-initial-setup.lang +%doc README COPYING +%{_libexecdir}/gnome-initial-setup* +%{_libexecdir}/gnome-welcome-tour +%{_sysconfdir}/xdg/autostart/*.desktop +%{_datadir}/gdm/greeter/applications/*.desktop +%{_datadir}/gnome-session/sessions/gnome-initial-setup.session +%{_datadir}/gnome-shell/modes/initial-setup.json +%{_datadir}/polkit-1/rules.d/20-gnome-initial-setup.rules + +%dir %{_datadir}/gnome-initial-setup +%{_datadir}/gnome-initial-setup/vendor.conf + +%changelog +* Wed Dec 11 2019 openEuler Buildteam - 3.30.0-2 +- Package init diff --git a/honor-firstboot-disabled.patch b/honor-firstboot-disabled.patch new file mode 100644 index 0000000000000000000000000000000000000000..d5541babe6535084b937f0db336ede93331a1b37 --- /dev/null +++ b/honor-firstboot-disabled.patch @@ -0,0 +1,88 @@ +From cfa7925f70ec44a976f6d0426133e3b8ba589142 Mon Sep 17 00:00:00 2001 +From: Rui Matos +Date: Mon, 23 Jan 2017 19:42:44 +0100 +Subject: [PATCH] Exit gracefully if we are disabled systemwide + +Sysadmins might want to disable any kind of initial setup for their +users, perhaps because they pre-configure their environments. We +should provide an easy way to do it. + +At least the anaconda installer provides an option to skip any kind +post-install setup tools so, for now we're only adding support for +that but more might be added in the future. + +https://bugzilla.gnome.org/show_bug.cgi?id=777707 +--- + gnome-initial-setup/Makefile.am | 3 +- + gnome-initial-setup/gnome-initial-setup.c | 34 +++++++++++++++++++++++ + 2 files changed, 36 insertions(+), 1 deletion(-) + +diff --git a/gnome-initial-setup/Makefile.am b/gnome-initial-setup/Makefile.am +index 6b6d5fb..e6a3e10 100644 +--- a/gnome-initial-setup/Makefile.am ++++ b/gnome-initial-setup/Makefile.am +@@ -12,7 +12,8 @@ AM_CPPFLAGS = \ + -DUIDIR="\"$(uidir)\"" \ + -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ + -DLIBLOCALEDIR=\""$(prefix)/lib/locale"\" \ +- -DDATADIR=\""$(datadir)"\" ++ -DDATADIR=\""$(datadir)"\" \ ++ -DSYSCONFDIR=\""$(sysconfdir)"\" + + libexec_PROGRAMS = gnome-initial-setup gnome-initial-setup-copy-worker + +diff --git a/gnome-initial-setup/gnome-initial-setup.c b/gnome-initial-setup/gnome-initial-setup.c +index 414ea94..989827b 100644 +--- a/gnome-initial-setup/gnome-initial-setup.c ++++ b/gnome-initial-setup/gnome-initial-setup.c +@@ -247,6 +247,31 @@ get_mode (void) + return GIS_DRIVER_MODE_NEW_USER; + } + ++static gboolean ++initial_setup_disabled_by_anaconda (void) ++{ ++ GKeyFile *key_file; ++ const gchar *file_name = SYSCONFDIR "/sysconfig/anaconda"; ++ gboolean disabled = FALSE; ++ GError *error = NULL; ++ ++ key_file = g_key_file_new (); ++ if (!g_key_file_load_from_file (key_file, file_name, G_KEY_FILE_NONE, &error)) { ++ if (!g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT) && ++ !g_error_matches (error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_NOT_FOUND)) { ++ g_warning ("Could not read %s: %s", file_name, error->message); ++ } ++ g_error_free (error); ++ goto out; ++ } ++ ++ disabled = g_key_file_get_boolean (key_file, "General", ++ "post_install_tools_disabled", NULL); ++ out: ++ g_key_file_unref (key_file); ++ return disabled; ++} ++ + int + main (int argc, char *argv[]) + { +@@ -281,6 +306,15 @@ main (int argc, char *argv[]) + skipped_pages = g_ptr_array_new_with_free_func ((GDestroyNotify) gtk_widget_destroy); + mode = get_mode (); + ++ /* We only do this in existing-user mode, because if gdm launches us ++ * in new-user mode and we just exit, gdm's special g-i-s session ++ * never terminates. */ ++ if (initial_setup_disabled_by_anaconda () && ++ mode == GIS_DRIVER_MODE_EXISTING_USER) { ++ gis_ensure_stamp_files (); ++ exit (EXIT_SUCCESS); ++ } ++ + /* When we are running as the gnome-initial-setup user we + * dont have a normal user session and need to initialize + * the keyring manually so that we can pass the credentials +-- +2.19.0.rc0 + diff --git a/vendor.conf b/vendor.conf new file mode 100644 index 0000000000000000000000000000000000000000..dc010ef5bf7bdab51cb6f31b7e5353c4210e649c --- /dev/null +++ b/vendor.conf @@ -0,0 +1,3 @@ +[pages] +skip=timezone +existing_user_only=language;keyboard