package init
This commit is contained in:
parent
c231563a93
commit
fdd8518752
36
README.en.md
36
README.en.md
@ -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/)
|
|
||||||
39
README.md
39
README.md
@ -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/)
|
|
||||||
BIN
gnome-initial-setup-3.30.0.tar.xz
Normal file
BIN
gnome-initial-setup-3.30.0.tar.xz
Normal file
Binary file not shown.
74
gnome-initial-setup.spec
Normal file
74
gnome-initial-setup.spec
Normal file
@ -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 <buildteam@openeuler.org> - 3.30.0-2
|
||||||
|
- Package init
|
||||||
88
honor-firstboot-disabled.patch
Normal file
88
honor-firstboot-disabled.patch
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
From cfa7925f70ec44a976f6d0426133e3b8ba589142 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rui Matos <tiagomatos@gmail.com>
|
||||||
|
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
|
||||||
|
|
||||||
3
vendor.conf
Normal file
3
vendor.conf
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[pages]
|
||||||
|
skip=timezone
|
||||||
|
existing_user_only=language;keyboard
|
||||||
Loading…
x
Reference in New Issue
Block a user