initial import

This commit is contained in:
2025-06-22 20:39:04 -05:00
commit f8a70886f0
3428 changed files with 302546 additions and 0 deletions

100
xorg-xdm/PKGBUILD Normal file
View File

@@ -0,0 +1,100 @@
# Maintainer: Jesus E. <heckyel@riseup.net>
pkgname=xorg-xdm
pkgver=1.1.11
_debver=$pkgver
_debrel=3
pkgrel=9
pkgdesc="X Display Manager"
arch=(i686 x86_64)
url="https://xorg.freedesktop.org/"
license=('X11')
depends=('libxaw' 'libxinerama' 'xenocara-xrdb' 'xenocara-sessreg' 'libxft' 'libxcrypt')
makedepends=('pkg-config' 'xenocara-util-macros' 'libxtrans' 'quilt')
backup=(etc/X11/xdm/Xaccess etc/X11/xdm/Xresources etc/X11/xdm/Xservers etc/X11/xdm/xdm-config etc/X11/xdm/Xsetup_0 etc/X11/xdm/Xsession
etc/conf.d/xdm)
install=xorg-xdm.install
source=(https://xorg.freedesktop.org/releases/individual/app/xdm-${pkgver}.tar.bz2
https://deb.debian.org/debian/pool/main/x/xdm/xdm_$_debver-$_debrel.diff.gz
Xsession-loginshell.patch
Xsession-xsm.patch
xdm-1.0.5-sessreg-utmp-fix-bug177890.patch
git-fixes.patch
xdm.confd
xdm.initd
xdm-setup.initd
startDM.sh
hyperbola.xpm
Xresources
Xsetup_0)
sha512sums=('fe6f2b7817c0f7f07a1f5f497edcdfa15b93986fd87f314daa472dac8625327ef46ebbf40d27fe8d4a8a2f8d5af8a01c4438a29356740e0eb350f2bd0c7ec0d5'
'404e72aaa7cf0f8f72cf6f0aa8d3c1e641f783442b64cc452c3b0136674eb80b808e04a41b17072ee6b21246eb64bbbb33d765a3e126f612258ce114eb2c0842'
'bb600af60c9090519ed4ea00de9201e6c4fb12ab2ec0e3ba04e82d15371a19ca3a816423a954e4286a337ae18ac95e4891af47459ef48158464798c811cd995d'
'bce6ed5f07627db6afb9ed063e42a653c50fa9c73813ce47b7ce9c0152fc7f8a153022e34b54259d09303c70392c0fd5eafc80d8eb748e691cf161e61948637f'
'b339f28331d7e558a90e84a6a250127e0b349a630c7c2c896a9597944aa37de58421370e9589cf67d8e3e96f1209a1febce2b8a7e76b00af9610b642af68cf80'
'be63ade1a79099991501cb9aba7e8a641a7b7f9a1779cea285e23b150fa9a929b4aa0d3bbfb4c9596214f77e75821b69130b0866ef1aa12cfa86020dc9327566'
'85440ee0071e96025a11d886765324a57d0530413cd418bafa3673691529fa9262acabaf95b228f92bc247d75feb342df21812e32049fc361f64e8d217581b34'
'aa944ee844dad8fc60b7d488e78f6c5f4cc3dd7ab1608a1236ed7e86543e77df84dd79ddd0733f923d65b3426c85cd7a5d5efde4804b3ee0974d835a1dba28c1'
'c6bdf1e195c9af97cd504ef9b63fc0835fe79d24738295d21277aa97951405721b96cff11097098edb707f9b351dce26993de04198d22251ca0655a313083083'
'f3b3aa841edfbd23810d2da7c56e23e3f1c1eb650b1196feea2fc8dc6092ad5d4c2fba70943a1bc86d716d838ab4ebc0d93e8a2c2ccdf69b171c1fdc4989942c'
'd144e976e1c3e0d1815203ca87481682176dd3f0f5f0699d780120748469cf85c214dd08e74d0b2a3b2ad2b9f143e9004ae58d85129ef868227a13d9d7f6ebf3'
'd840aa34a5117ea674f8b636b50c4a9cb344b1f7f4d419f3f03975e3e019f699a55251534ef499c11411c0354adbd6e4b6b77a63c0890a5719a55b42466cf0b6'
'accef125b422f1b751daee9100a30f20aaecb99a9406e48a6b7a2c0770c76c7d5e98afba2c1dfb2bb182d419af26c7abb2c8a4d8444dd0c4620a46ae15eeb30f')
prepare() {
cd "xdm-$pkgver"
if [[ ${pkgver%.*} = ${_debver%.*} ]]; then
# Debian patches
export QUILT_PATCHES=debian/patches
export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index'
export QUILT_DIFF_ARGS='--no-timestamps'
patch -p1 -i "$srcdir"/xdm_$_debver-$_debrel.diff
# Doesn't apply
rm -v debian/patches/22_systemd_service.diff || true
rm -v debian/patches/debian.diff || true
quilt push -av
else
# upstream commits - Add some missing malloc failure checks 2012-01-07
patch -p1 -i "$srcdir/git-fixes.patch"
fi
patch -p1 -i "$srcdir/Xsession-loginshell.patch"
patch -p1 -i "$srcdir/Xsession-xsm.patch"
patch -p1 -i "$srcdir/xdm-1.0.5-sessreg-utmp-fix-bug177890.patch"
}
build() {
cd "xdm-$pkgver"
./configure --prefix=/usr \
--disable-xdm-auth \
--disable-static \
--with-xdmconfigdir=/etc/X11/xdm \
--with-xdmscriptdir=/etc/X11/xdm \
--with-pixmapdir=/usr/share/xdm/pixmaps \
--without-pam
make
}
package() {
cd "xdm-$pkgver"
make DESTDIR="$pkgdir" install
install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
install -m755 -d "$pkgdir/var/lib/xdm"
install -Dm755 "$srcdir/startDM.sh" "$pkgdir/etc/X11/startDM.sh"
install -Dm644 "$srcdir/xdm.confd" "$pkgdir/etc/conf.d/xdm"
for f in xdm xdm-setup; do
install -Dm755 "$srcdir/$f.initd" "$pkgdir/etc/init.d/$f"
done
rm "$pkgdir/etc/X11/xdm/"{Xresources,Xsetup_0}
install -Dm644 "$srcdir/"{Xresources,Xsetup_0} "$pkgdir/etc/X11/xdm"
rm "$pkgdir/usr/share/xdm/pixmaps/"xorg{,-bw}.xpm
install -Dm644 "$srcdir/hyperbola.xpm" "$pkgdir/usr/share/xdm/pixmaps"
sed -i -e 's/\/X11R6//g' $pkgdir/etc/X11/xdm/*
}

51
xorg-xdm/Xresources Normal file
View File

@@ -0,0 +1,51 @@
! || xdm config ||
! --|| General ||--
! Option:
xlogin*failTimeout: 5
! --> Logo:
xlogin*useShape: true
! Placement:
xlogin*greeting: Welcome to Hyperbola || CLIENTHOST
! --> Logo:
xlogin*logoFileName: /usr/share/xdm/pixmaps/hyperbola.xpm
! Geometry:
! --> Window:
xlogin*borderWidth: 1
xlogin*frameWidth: 4
xlogin*innerFramesWidth: 2
! --> Logo:
xlogin*logoPadding: 8
! Fill:
! --> Window:
xlogin*background: silver
xlogin*hiColor: white
xlogin*shdColor: gray50
xlogin*failColor: red
! Text:
#if WIDTH > 800
xlogin*font: -*-helvetica-medium-r-*-*-18-*
xlogin*greetFont: -*-helvetica-bold-r-*-*-18-*
xlogin*promptFont: -*-helvetica-medium-r-*-*-18-*
xlogin*failFont: -*-helvetica-medium-r-*-*-18-*
xlogin*face: Sans-12
xlogin*greetFace: Sans-12:Bold
xlogin*promptFace: Sans-12
xlogin*failFace: Sans-12
#else
xlogin*font: -*-helvetica-medium-r-*-*-14-*
xlogin*greetFont: -*-helvetica-bold-r-*-*-14-*
xlogin*promptFont: -*-helvetica-medium-r-*-*-14-*
xlogin*failFont: -*-helvetica-medium-r-*-*-14-*
xlogin*face: Sans-9
xlogin*greetFace: Sans-9:Bold
xlogin*promptFace: Sans-9
xlogin*failFace: Sans-9
#endif
! --|| xconsole ||--
! Option:
XConsole.verbose: true
XConsole*iconic: true
! Geometry:
XConsole.text.geometry: 80x12

View File

@@ -0,0 +1,17 @@
diff --git a/config/Xsession.cpp b/config/Xsession.cpp
index 36ccbd0..0bf8a7c 100644
--- a/config/Xsession.cpp
+++ b/config/Xsession.cpp
@@ -53,11 +53,7 @@ startup=$HOME/.xsession
resources=$HOME/.Xresources
if [ -s "$startup" ]; then
- if [ -x "$startup" ]; then
- exec "$startup"
- else
- exec /bin/sh "$startup"
- fi
+ exec /bin/sh -ls -c "$startup"
else
if [ -r "$resources" ]; then
BINDIR/xrdb -load "$resources"

View File

@@ -0,0 +1,23 @@
diff --git a/config/Xsession.cpp b/config/Xsession.cpp
index 0bf8a7c..033b6a8 100644
--- a/config/Xsession.cpp
+++ b/config/Xsession.cpp
@@ -51,6 +51,7 @@ XCOMM The startup script is not intended to have arguments.
startup=$HOME/.xsession
resources=$HOME/.Xresources
+xinitrc=$HOME/.xinitrc
if [ -s "$startup" ]; then
exec /bin/sh -ls -c "$startup"
@@ -76,5 +77,9 @@ else
exec `eval $XDESKTOP`
}
#endif
- exec BINDIR/xsm
+ if [ -r "$xinitrc" ]; then
+ exec /bin/sh -ls -c "$xinitrc"
+ else
+ exec /bin/sh -l /etc/X11/xinit/xinitrc
+ fi
fi

3
xorg-xdm/Xsetup_0 Normal file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
xsetroot -solid "#444"
#xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail

673
xorg-xdm/git-fixes.patch Normal file
View File

@@ -0,0 +1,673 @@
From 011a2710a69cd345a8ee3a6b2f15407b4c3b355a Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston <jeremyhu@apple.com>
Date: Sun, 25 Sep 2011 07:56:15 +0000
Subject: Require xt >= 1.0 for appdefaultdir
https://bugs.freedesktop.org/show_bug.cgi?id=7237
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
---
diff --git a/configure.ac b/configure.ac
index b488f0c..a4222f1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -383,7 +383,7 @@ PKG_CHECK_MODULES(AUTH, xau)
# Greeter
#
-PKG_CHECK_MODULES(XDMGREET, xt x11 xext)
+PKG_CHECK_MODULES(XDMGREET, xt >= 1.0 x11 xext)
GREETERLIB="${XDMLIBDIR}/libXdmGreet.so"
AX_DEFINE_DIR(DEF_GREETER_LIB, GREETERLIB, [Location of Xdm Greeter library])
--
cgit v0.9.0.2-2-gbebe
From 618039261b0c7f14eb3b32c8f636464369724407 Mon Sep 17 00:00:00 2001
From: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Wed, 21 Sep 2011 02:11:20 +0000
Subject: Mark some chars as const to fix gcc -Wwrite-strings warnings
Can't fix all the warnings, due to the Xt API, but can fix a bunch.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
---
diff --git a/greeter/greet.c b/greeter/greet.c
index 539ce17..82e2c21 100644
--- a/greeter/greet.c
+++ b/greeter/greet.c
@@ -110,9 +110,9 @@ void (*__xdm_SessionExit)(struct display *d, int status, int removeAuth) = NU
void (*__xdm_DeleteXloginResources)(struct display *d, Display *dpy) = NULL;
int (*__xdm_source)(char **environ, char *file) = NULL;
char **(*__xdm_defaultEnv)(void) = NULL;
-char **(*__xdm_setEnv)(char **e, char *name, char *value) = NULL;
+char **(*__xdm_setEnv)(char **e, const char *name, const char *value) = NULL;
char **(*__xdm_putEnv)(const char *string, char **env) = NULL;
-char **(*__xdm_parseArgs)(char **argv, char *string) = NULL;
+char **(*__xdm_parseArgs)(char **argv, const char *string) = NULL;
void (*__xdm_printEnv)(char **e) = NULL;
char **(*__xdm_systemEnv)(struct display *d, char *user, char *home) = NULL;
void (*__xdm_LogOutOfMem)(const char * fmt, ...) = NULL;
diff --git a/greeter/verify.c b/greeter/verify.c
index ea62cd2..5d2ad17 100644
--- a/greeter/verify.c
+++ b/greeter/verify.c
@@ -61,7 +61,7 @@ from The Open Group.
extern char *crypt(const char *, const char *);
#endif
-static char *envvars[] = {
+static const char *envvars[] = {
"TZ", /* SYSV and SVR4, but never hurts */
#if defined(sony) && !defined(SYSTYPE_SYSV) && !defined(_SYSTYPE_SYSV)
"bootdev",
@@ -94,8 +94,8 @@ static char **
userEnv (struct display *d, int useSystemPath, char *user, char *home, char *shell)
{
char **env;
- char **envvar;
- char *str;
+ const char **envvar;
+ const char *str;
env = defaultEnv ();
env = setEnv (env, "DISPLAY", d->name);
diff --git a/include/dm.h b/include/dm.h
index 316dd46..4085cae 100644
--- a/include/dm.h
+++ b/include/dm.h
@@ -443,7 +443,7 @@ extern void UnsecureDisplay (struct display *d, Display *dpy);
extern void execute(char **argv, char **environ);
/* server.c */
-extern char *_SysErrorMsg (int n);
+extern const char *_SysErrorMsg (int n);
extern int StartServer (struct display *d);
extern int WaitForServer (struct display *d);
extern void ResetServer (struct display *d);
@@ -462,10 +462,10 @@ extern int Asprintf(char ** ret, const char *restrict format, ...)
_X_ATTRIBUTE_PRINTF(2,3);
# endif
extern char *localHostname (void);
-extern char **parseArgs (char **argv, char *string);
-extern char **setEnv (char **e, char *name, char *value);
+extern char **parseArgs (char **argv, const char *string);
+extern char **setEnv (char **e, const char *name, const char *value);
extern char **putEnv(const char *string, char **env);
-extern char *getEnv (char **e, char *name);
+extern char *getEnv (char **e, const char *name);
extern void CleanUpChild (void);
extern void freeArgs (char **argv);
extern void freeEnv (char **env);
@@ -478,7 +478,7 @@ extern int Verify (struct display *d, struct greet_info *greet, struct verify_in
extern char *NetworkAddressToHostname (CARD16 connectionType, ARRAY8Ptr connectionAddress);
extern int AnyWellKnownSockets (void);
extern void DestroyWellKnownSockets (void);
-extern void SendFailed (struct display *d, char *reason);
+extern void SendFailed (struct display *d, const char *reason);
extern void StopDisplay (struct display *d);
extern void WaitForChild (void);
extern void WaitForSomething (void);
diff --git a/include/greet.h b/include/greet.h
index 6b6689e..0d607ba 100644
--- a/include/greet.h
+++ b/include/greet.h
@@ -65,9 +65,9 @@ struct dlfuncs {
void (*_DeleteXloginResources)(struct display *d, Display *dpy);
int (*_source)(char **environ, char *file);
char **(*_defaultEnv)(void);
- char **(*_setEnv)(char **e, char *name, char *value);
+ char **(*_setEnv)(char **e, const char *name, const char *value);
char **(*_putEnv)(const char *string, char **env);
- char **(*_parseArgs)(char **argv, char *string);
+ char **(*_parseArgs)(char **argv, const char *string);
void (*_printEnv)(char **e);
char **(*_systemEnv)(struct display *d, char *user, char *home);
void (*_LogOutOfMem)(const char * fmt, ...);
@@ -149,9 +149,9 @@ extern void (*__xdm_SessionExit)(struct display *d, int status, int removeAut
extern void (*__xdm_DeleteXloginResources)(struct display *d, Display *dpy);
extern int (*__xdm_source)(char **environ, char *file);
extern char **(*__xdm_defaultEnv)(void);
-extern char **(*__xdm_setEnv)(char **e, char *name, char *value);
+extern char **(*__xdm_setEnv)(char **e, const char *name, const char *value);
extern char **(*__xdm_putEnv)(const char *string, char **env);
-extern char **(*__xdm_parseArgs)(char **argv, char *string);
+extern char **(*__xdm_parseArgs)(char **argv, const char *string);
extern void (*__xdm_printEnv)(char **e);
extern char **(*__xdm_systemEnv)(struct display *d, char *user, char *home);
extern void (*__xdm_LogOutOfMem)(const char * fmt, ...);
diff --git a/xdm/access.c b/xdm/access.c
index d0850ad..7035375 100644
--- a/xdm/access.c
+++ b/xdm/access.c
@@ -667,7 +667,7 @@ scanHostlist (
/* Returns non-0 iff string is matched by pattern. Does case folding.
*/
static int
-patternMatch (char *string, char *pattern)
+patternMatch (const char *string, char *pattern)
{
int p, s;
diff --git a/xdm/auth.c b/xdm/auth.c
index bbca167..9e5cba2 100644
--- a/xdm/auth.c
+++ b/xdm/auth.c
@@ -116,7 +116,7 @@ int chown(int a,int b,int c) {}
struct AuthProtocol {
unsigned short name_length;
- char *name;
+ const char *name;
void (*InitAuth)(unsigned short len, char *name);
Xauth *(*GetAuth)(unsigned short len, char *name);
void (*GetXdmcpAuth)(
diff --git a/xdm/file.c b/xdm/file.c
index 6e929b8..7b7f3d3 100644
--- a/xdm/file.c
+++ b/xdm/file.c
@@ -225,7 +225,7 @@ ParseDisplay (char *source, DisplayType *acceptableTypes, int numAcceptable)
}
static struct displayMatch {
- char *name;
+ const char *name;
DisplayType type;
} displayTypes[] = {
{ "local", { Local, Permanent, FromFile } },
diff --git a/xdm/resource.c b/xdm/resource.c
index ece4de3..83901a2 100644
--- a/xdm/resource.c
+++ b/xdm/resource.c
@@ -145,10 +145,10 @@ int choiceTimeout; /* chooser choice timeout */
#define DEF_UDP_PORT "177" /* registered XDMCP port, dont change */
struct dmResources {
- char *name, *class;
- int type;
- char **dm_value;
- char *default_value;
+ const char *name, *class;
+ int type;
+ char **dm_value;
+ const char *default_value;
} DmResources[] = {
{ "servers", "Servers", DM_STRING, &servers,
DEF_SERVER_LINE} ,
@@ -203,10 +203,10 @@ struct dmResources {
#define boffset(f) XtOffsetOf(struct display, f)
struct displayResource {
- char *name, *class;
- int type;
- int offset;
- char *default_value;
+ const char *name, *class;
+ int type;
+ int offset;
+ const char *default_value;
};
/* resources for managing the server */
@@ -289,15 +289,16 @@ XrmDatabase DmResourceDB;
static void
GetResource (
- char *name,
- char *class,
- int valueType,
- char **valuep,
- char *default_value)
+ const char *name,
+ const char *class,
+ int valueType,
+ char **valuep,
+ const char *default_value)
{
char *type;
XrmValue value;
- char *string, *new_string;
+ const char *string;
+ char *new_string;
char str_buf[50];
int len;
diff --git a/xdm/server.c b/xdm/server.c
index 7fe55e6..1bb8873 100644
--- a/xdm/server.c
+++ b/xdm/server.c
@@ -62,9 +62,9 @@ CatchUsr1 (int n)
errno = olderrno;
}
-char *_SysErrorMsg (int n)
+const char *_SysErrorMsg (int n)
{
- char *s = strerror(n);
+ const char *s = strerror(n);
return (s ? s : "unknown error");
}
diff --git a/xdm/util.c b/xdm/util.c
index 033633a..60aab21 100644
--- a/xdm/util.c
+++ b/xdm/util.c
@@ -97,7 +97,7 @@ printEnv (char **e)
}
static char *
-makeEnv (char *name, char *value)
+makeEnv (const char *name, const char *value)
{
char *result;
@@ -111,7 +111,7 @@ makeEnv (char *name, char *value)
}
char *
-getEnv (char **e, char *name)
+getEnv (char **e, const char *name)
{
int l = strlen (name);
@@ -127,7 +127,7 @@ getEnv (char **e, char *name)
}
char **
-setEnv (char **e, char *name, char *value)
+setEnv (char **e, const char *name, const char *value)
{
char **new, **old;
char *newe;
@@ -207,9 +207,9 @@ freeEnv (char **env)
#define isblank(c) ((c) == ' ' || c == '\t')
char **
-parseArgs (char **argv, char *string)
+parseArgs (char **argv, const char *string)
{
- char *word;
+ const char *word;
char *save;
char **newargv;
int i;
diff --git a/xdm/xdmauth.c b/xdm/xdmauth.c
index 4b945cf..66804a4 100644
--- a/xdm/xdmauth.c
+++ b/xdm/xdmauth.c
@@ -44,7 +44,7 @@ static char auth_name[256];
static int auth_name_len;
static void
-XdmPrintDataHex (char *s, char *a, int l)
+XdmPrintDataHex (const char *s, const char *a, int l)
{
int i;
@@ -56,7 +56,7 @@ XdmPrintDataHex (char *s, char *a, int l)
# ifdef XDMCP
static void
-XdmPrintArray8Hex (char *s, ARRAY8Ptr a)
+XdmPrintArray8Hex (const char *s, ARRAY8Ptr a)
{
XdmPrintDataHex (s, (char *) a->data, a->length);
}
diff --git a/xdm/xdmcp.c b/xdm/xdmcp.c
index 5bc4716..1c34e7c 100644
--- a/xdm/xdmcp.c
+++ b/xdm/xdmcp.c
@@ -74,7 +74,7 @@ static void request_respond (struct sockaddr *from, int fromlen, int length, int
static void send_accept (struct sockaddr *to, int tolen, CARD32 sessionID, ARRAY8Ptr authenticationName, ARRAY8Ptr authenticationData, ARRAY8Ptr authorizationName, ARRAY8Ptr authorizationData, int fd);
static void send_alive (struct sockaddr *from, int fromlen, int length, int fd);
static void send_decline (struct sockaddr *to, int tolen, ARRAY8Ptr authenticationName, ARRAY8Ptr authenticationData, ARRAY8Ptr status, int fd);
-static void send_failed (struct sockaddr *from, int fromlen, char *name, CARD32 sessionID, char *reason, int fd);
+static void send_failed (struct sockaddr *from, int fromlen, const char *name, CARD32 sessionID, const char *reason, int fd);
static void send_refuse (struct sockaddr *from, int fromlen, CARD32 sessionID, int fd);
static void send_unwilling (struct sockaddr *from, int fromlen, ARRAY8Ptr authenticationName, ARRAY8Ptr status, int fd);
static void send_willing (struct sockaddr *from, int fromlen, ARRAY8Ptr authenticationName, ARRAY8Ptr status, int fd);
@@ -1300,7 +1300,7 @@ abort:
void
SendFailed (
struct display *d,
- char *reason)
+ const char *reason)
{
Debug ("Display start failed, sending Failed\n");
send_failed ((struct sockaddr *)(d->from), d->fromlen, d->name,
@@ -1311,9 +1311,9 @@ static void
send_failed (
struct sockaddr *from,
int fromlen,
- char *name,
+ const char *name,
CARD32 sessionID,
- char *reason,
+ const char *reason,
int fd)
{
static char buf[256];
@@ -1416,7 +1416,7 @@ NetworkAddressToHostname (
# else
char dotted[20];
# endif
- char *local_name = "";
+ const char *local_name = "";
int af_type;
# if defined(IPv6) && defined(AF_INET6)
--
cgit v0.9.0.2-2-gbebe
From c43eb799774743bc50233eff6643c51a5fbe6899 Mon Sep 17 00:00:00 2001
From: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Wed, 21 Sep 2011 02:22:48 +0000
Subject: Fix warnings about printing longs with int type format strings
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
---
diff --git a/xdm/dm.c b/xdm/dm.c
index cd0ee25..7bc2605 100644
--- a/xdm/dm.c
+++ b/xdm/dm.c
@@ -536,7 +536,7 @@ WaitForChild (void)
time(&now);
crash = d->lastReserv &&
((now - d->lastReserv) < XDM_BROKEN_INTERVAL);
- Debug("time %i %i try %i of %i%s\n", now, d->lastReserv,
+ Debug("time %li %li try %i of %i%s\n", now, d->lastReserv,
d->reservTries, d->reservAttempts,
crash ? " crash" : "");
diff --git a/xdm/xdmauth.c b/xdm/xdmauth.c
index 66804a4..b3c1c16 100644
--- a/xdm/xdmauth.c
+++ b/xdm/xdmauth.c
@@ -234,7 +234,7 @@ XdmGetKey(struct protoDisplay *pdpy, ARRAY8Ptr displayID)
if (line[0] == '#' || sscanf (line, "%s %s", id, key) != 2)
continue;
bzero(line, sizeof(line));
- Debug ("Key entry for \"%s\" %d bytes\n", id, strlen(key));
+ Debug ("Key entry for \"%s\" %ld bytes\n", id, strlen(key));
if (strlen (id) == displayID->length &&
!strncmp (id, (char *)displayID->data, displayID->length))
{
--
cgit v0.9.0.2-2-gbebe
From 8eee942be0db913511b4c53f94829e1201dfdf00 Mon Sep 17 00:00:00 2001
From: Michał Górny <mgorny@gentoo.org>
Date: Wed, 28 Sep 2011 19:25:17 +0000
Subject: Support systemd startup notification.
If libsystemd-daemon support is enabled, xdm uses it to announce its
startup as soon as the session is established. This gives the user
opportunity to delay I/O-intensive operations until the X server is
started so that they would not interfere with its loading while keeping
the machine busy when user types in his/her login.
Reviewed-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
---
diff --git a/Makefile.am b/Makefile.am
index e5f9f5c..bb6b51c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -43,8 +43,13 @@ endif LINT
if HAVE_SYSTEMD
systemdsystemunit_DATA = xdm.service
-xdm.service: xdm.service.in
- $(AM_V_GEN)$(SED) -e 's|BINDIR|$(bindir)|g' < $< > $@
+xdm.service: xdm.service.in Makefile
+if USE_SYSTEMD_DAEMON
+ $(AM_V_GEN)$(SED) -e 's|BINDIR|$(bindir)|g' < xdm.service.in > $@
+else !USE_SYSTEMD_DAEMON
+ $(AM_V_GEN)$(SED) -e 's|BINDIR|$(bindir)|g' -e '/[Nn]otify/d' < xdm.service.in > $@
+endif !USE_SYSTEMD_DAEMON
+
endif HAVE_SYSTEMD
CLEANFILES = xdm.service
EXTRA_DIST = xdm.service.in
diff --git a/configure.ac b/configure.ac
index a4222f1..fcb37f8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -146,6 +146,7 @@ if test "x$USE_SELINUX" != "xno" ; then
fi
# Check whether to install systemd unit files, as suggested in daemon(7).
+# When a full path is specified, this does not require systemd installed.
AC_ARG_WITH([systemdsystemunitdir], AS_HELP_STRING([--with-systemdsystemunitdir=DIR],
[Directory for systemd service files (default from the System and Service Manager)]),,
[with_systemdsystemunitdir=auto])
@@ -166,6 +167,21 @@ AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
])
AM_CONDITIONAL(HAVE_SYSTEMD, [test "x$with_systemdsystemunitdir" != "xno"])
+# Check whether to enable systemd startup notification.
+# This requires libsystemd-daemon.
+AC_ARG_WITH([systemd-daemon], AS_HELP_STRING([--with-systemd-daemon],
+ [Add support for systemd startup notification (default is autodetected)]),
+ [USE_SYSTEMD_DAEMON=$withval], [USE_SYSTEMD_DAEMON=auto])
+AS_IF([test "x$USE_SYSTEMD_DAEMON" != "xno"], [
+ PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
+ [AC_DEFINE(USE_SYSTEMD_DAEMON,1,[Use systemd startup notification])],
+ [AS_IF([test "x$USE_SYSTEMD_DAEMON" = "xyes"],
+ [AC_MSG_ERROR([systemd startup notification support requested, but libsystemd-daemon not found.])]
+ )]
+ )
+])
+AM_CONDITIONAL(USE_SYSTEMD_DAEMON, [test "x$USE_SYSTEMD_DAEMON" != "xno"])
+
# FIXME: Find better test for which OS'es use su -m - for now, just try to
# mirror the Imakefile setting of:
# if defined(OpenBSDArchitecture) || defined(NetBSDArchitecture) || defined(FreeBSDArchitecture) || defined(DarwinArchitecture)
diff --git a/xdm.service.in b/xdm.service.in
index d15e072..e782dd9 100644
--- a/xdm.service.in
+++ b/xdm.service.in
@@ -4,6 +4,8 @@ After=systemd-user-sessions.service
[Service]
ExecStart=BINDIR/xdm -nodaemon
+Type=notify
+NotifyAccess=all
[Install]
Alias=graphical.target.wants/xdm.service
diff --git a/xdm/Makefile.am b/xdm/Makefile.am
index aa9765c..797b5c5 100644
--- a/xdm/Makefile.am
+++ b/xdm/Makefile.am
@@ -22,11 +22,11 @@
bin_PROGRAMS = xdm
AM_CPPFLAGS = -I$(top_srcdir)/include
-AM_CFLAGS = $(CWARNFLAGS) $(XDM_CFLAGS)
+AM_CFLAGS = $(CWARNFLAGS) $(XDM_CFLAGS) $(SYSTEMD_DAEMON_CFLAGS)
# The xdm binary needs to export symbols so that they can be used from
# libXdmGreet.so loaded through a dlopen call from session.c
-AM_LDFLAGS = $(XDM_LIBS) -export-dynamic
+AM_LDFLAGS = $(XDM_LIBS) $(SYSTEMD_DAEMON_LIBS) -export-dynamic
xdm_SOURCES = \
access.c \
diff --git a/xdm/session.c b/xdm/session.c
index 5fd47f0..573747d 100644
--- a/xdm/session.c
+++ b/xdm/session.c
@@ -81,6 +81,10 @@ extern int key_setnet(struct key_netstarg *arg);
# define RTLD_NOW 1
# endif
+#ifdef USE_SYSTEMD_DAEMON
+#include <systemd/sd-daemon.h>
+#endif
+
#ifdef USE_SELINUX
/* This should be run just before we exec the user session. */
static int
@@ -349,6 +353,12 @@ ManageSession (struct display *d)
exit(UNMANAGE_DISPLAY);
}
+#ifdef USE_SYSTEMD_DAEMON
+ /* Subsequent notifications will be ignored by systemd
+ * and calling this function will clean up the env */
+ sd_notify(1, "READY=1");
+#endif
+
/* tell the possibly dynamically loaded greeter function
* what data structure formats to expect.
* These version numbers are registered with The Open Group. */
--
cgit v0.9.0.2-2-gbebe
From 284532c0884893728b75ca37f5d2a9a33f7bc8db Mon Sep 17 00:00:00 2001
From: Julien Cristau <jcristau@debian.org>
Date: Sat, 22 Oct 2011 15:14:46 +0000
Subject: greeter: link against -lXrender if xft is enabled
XmuCvtStringToXftColor uses XRenderParseColor, so require xrender for
the xft option, and link against it.
Signed-off-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
---
diff --git a/configure.ac b/configure.ac
index fcb37f8..d20ae28 100644
--- a/configure.ac
+++ b/configure.ac
@@ -345,10 +345,10 @@ AC_ARG_WITH(xft,
AS_HELP_STRING([--with-xft],
[Use Xft to draw text (default is YES if installed)]),
[USE_XFT="$withval"],
- PKG_CHECK_EXISTS(xft, [USE_XFT="yes"], [USE_XFT="no"]))
+ PKG_CHECK_EXISTS(xft xrender, [USE_XFT="yes"], [USE_XFT="no"]))
if test "x$USE_XFT" = "xyes" ; then
- PKG_CHECK_MODULES(XFT, xft)
+ PKG_CHECK_MODULES(XFT, xft xrender)
GREETER_CFLAGS="$GREETER_CFLAGS $XFT_CFLAGS"
GREETER_LIBS="$GREETER_LIBS $XFT_LIBS"
AC_DEFINE([USE_XFT], 1,
diff --git a/greeter/Login.c b/greeter/Login.c
index 99a3932..d899376 100644
--- a/greeter/Login.c
+++ b/greeter/Login.c
@@ -86,6 +86,10 @@ from The Open Group.
# include <X11/extensions/Xinerama.h>
#endif
+#ifdef USE_XFT
+# include <X11/extensions/Xrender.h>
+#endif
+
#ifndef DEBUG
# define XDM_ASSERT(a) /* do nothing */
#else
--
cgit v0.9.0.2-2-gbebe
From a02edebf21aae37f8564d7b9fad01d5d2942ad8d Mon Sep 17 00:00:00 2001
From: Matthieu Herrb <matthieu.herrb@laas.fr>
Date: Mon, 07 Nov 2011 16:01:44 +0000
Subject: Fix build outside of source dir. Fixes distcheck too.
Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
---
diff --git a/Makefile.am b/Makefile.am
index bb6b51c..e9da40f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -45,9 +45,9 @@ systemdsystemunit_DATA = xdm.service
xdm.service: xdm.service.in Makefile
if USE_SYSTEMD_DAEMON
- $(AM_V_GEN)$(SED) -e 's|BINDIR|$(bindir)|g' < xdm.service.in > $@
+ $(AM_V_GEN)$(SED) -e 's|BINDIR|$(bindir)|g' < ${srcdir}/xdm.service.in > $@
else !USE_SYSTEMD_DAEMON
- $(AM_V_GEN)$(SED) -e 's|BINDIR|$(bindir)|g' -e '/[Nn]otify/d' < xdm.service.in > $@
+ $(AM_V_GEN)$(SED) -e 's|BINDIR|$(bindir)|g' -e '/[Nn]otify/d' < ${srcdir}/xdm.service.in > $@
endif !USE_SYSTEMD_DAEMON
endif HAVE_SYSTEMD
--
cgit v0.9.0.2-2-gbebe
From ad7a54288f62c0266540279dac775ebee68f092e Mon Sep 17 00:00:00 2001
From: Matthieu Herrb <matthieu.herrb@laas.fr>
Date: Thu, 15 Dec 2011 21:14:23 +0000
Subject: replace <varargs.h> by <stdarg.h>. Spotted my Marco Peereboom with clang.
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr>
---
diff --git a/greeter/verify.c b/greeter/verify.c
index 5d2ad17..1221874 100644
--- a/greeter/verify.c
+++ b/greeter/verify.c
@@ -48,7 +48,7 @@ from The Open Group.
# include <errno.h>
#elif defined(USE_BSDAUTH)
# include <login_cap.h>
-# include <varargs.h>
+# include <stdarg.h>
# include <bsd_auth.h>
#elif defined(USESECUREWARE)
# include <sys/types.h>
--
cgit v0.9.0.2-2-gbebe
From 78403f6a7420798bf24798811c8c6b936c9ccb34 Mon Sep 17 00:00:00 2001
From: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat, 07 Jan 2012 03:34:30 +0000
Subject: Add some missing malloc failure checks
Flagged by Solaris Studio 12.3 code analyzer
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
---
diff --git a/xdm/access.c b/xdm/access.c
index 7035375..b16a066 100644
--- a/xdm/access.c
+++ b/xdm/access.c
@@ -304,6 +304,11 @@ tryagain:
if (!hostOrAlias)
return NULL;
h = malloc (sizeof (DisplayEntry));
+ if (!h)
+ {
+ LogOutOfMem ("ReadHostEntry: DisplayEntry\n");
+ return NULL;
+ }
h->hopCount = 1;
if (*hostOrAlias == ALIAS_CHARACTER)
{
@@ -423,6 +428,11 @@ tryagain:
if (!displayOrAlias)
return NULL;
d = malloc (sizeof (DisplayEntry));
+ if (!d)
+ {
+ LogOutOfMem ("ReadDisplayEntry: DisplayEntry\n");
+ return NULL;
+ }
d->notAllowed = 0;
d->notBroadcast = 0;
d->chooser = 0;
diff --git a/xdm/choose.c b/xdm/choose.c
index 6f077eb..e5e003d 100644
--- a/xdm/choose.c
+++ b/xdm/choose.c
@@ -128,6 +128,11 @@ RememberIndirectClient (
connectionType == i->connectionType)
return 1;
i = malloc (sizeof (IndirectUsersRec));
+ if (!i)
+ {
+ LogOutOfMem ("RememberIndirectClient\n");
+ return 0;
+ }
if (!XdmcpCopyARRAY8 (clientAddress, &i->client))
{
free (i);
--
cgit v0.9.0.2-2-gbebe

317
xorg-xdm/hyperbola.xpm Normal file
View File

@@ -0,0 +1,317 @@
/* XPM */
static char * hyperbola[] = {
"128 128 186 2",
" c #C0C0C0",
". c #BABABA",
"+ c #A1A1A1",
"@ c #878787",
"# c #6E6E6E",
"$ c #575757",
"% c #474747",
"& c #444444",
"* c #AFAFAF",
"= c #888888",
"- c #505050",
"; c #8F8F8F",
"> c #494949",
", c #ABABAB",
"' c #767676",
") c #A6A6A6",
"! c #6A6A6A",
"~ c #454545",
"{ c #464646",
"] c #4B4B4B",
"^ c #484848",
"/ c #4C4C4C",
"( c #646464",
"_ c #4A4A4A",
": c #4D4D4D",
"< c #525252",
"[ c #434343",
"} c #555555",
"| c #7E7E7E",
"1 c #656565",
"2 c #717171",
"3 c #727272",
"4 c #959595",
"5 c #5B5B5B",
"6 c #515151",
"7 c #797979",
"8 c #5F5F5F",
"9 c #929292",
"0 c #A4A4A4",
"a c #676767",
"b c #636363",
"c c #8A8A8A",
"d c #9F9F9F",
"e c #595959",
"f c #6B6B6B",
"g c #AEAEAE",
"h c #747474",
"i c #565656",
"j c #5A5A5A",
"k c #6F6F6F",
"l c #9D9D9D",
"m c #A9A9A9",
"n c #A5A5A5",
"o c #6C6C6C",
"p c #535353",
"q c #B8B8B8",
"r c #B9B9B9",
"s c #838383",
"t c #545454",
"u c #616161",
"v c #AAAAAA",
"w c #B2B2B2",
"x c #8B8B8B",
"y c #A0A0A0",
"z c #C1C1C1",
"A c #C2C2C2",
"B c #949494",
"C c #4E4E4E",
"D c #666666",
"E c #8C8C8C",
"F c #B5B5B5",
"G c #B6B6B6",
"H c #686868",
"I c #B4B4B4",
"J c #C9C9C9",
"K c #CACACA",
"L c #696969",
"M c #5E5E5E",
"N c #A3A3A3",
"O c #BEBEBE",
"P c #BDBDBD",
"Q c #B3B3B3",
"R c #4F4F4F",
"S c #CFCFCF",
"T c #D2D2D2",
"U c #868686",
"V c #C3C3C3",
"W c #7B7B7B",
"X c #C4C4C4",
"Y c #D5D5D5",
"Z c #D8D8D8",
"` c #CDCDCD",
" . c #7C7C7C",
".. c #5C5C5C",
"+. c #5D5D5D",
"@. c #707070",
"#. c #9E9E9E",
"$. c #C6C6C6",
"%. c #C5C5C5",
"&. c #ADADAD",
"*. c #585858",
"=. c #DEDEDE",
"-. c #D6D6D6",
";. c #989898",
">. c #848484",
",. c #C8C8C8",
"'. c #919191",
"). c #E1E1E1",
"!. c #DDDDDD",
"~. c #B7B7B7",
"{. c #737373",
"]. c #757575",
"^. c #A2A2A2",
"/. c #BFBFBF",
"(. c #CBCBCB",
"_. c #626262",
":. c #E4E4E4",
"<. c #6D6D6D",
"[. c #939393",
"}. c #C7C7C7",
"|. c #CCCCCC",
"1. c #BBBBBB",
"2. c #9C9C9C",
"3. c #E2E2E2",
"4. c #E9E9E9",
"5. c #D0D0D0",
"6. c #B0B0B0",
"7. c #EBEBEB",
"8. c #E8E8E8",
"9. c #DADADA",
"0. c #CECECE",
"a. c #D1D1D1",
"b. c #BCBCBC",
"c. c #DCDCDC",
"d. c #EAEAEA",
"e. c #EFEFEF",
"f. c #898989",
"g. c #E7E7E7",
"h. c #F1F1F1",
"i. c #E5E5E5",
"j. c #9B9B9B",
"k. c #D7D7D7",
"l. c #EEEEEE",
"m. c #F4F4F4",
"n. c #F2F2F2",
"o. c #D9D9D9",
"p. c #858585",
"q. c #D4D4D4",
"r. c #DBDBDB",
"s. c #606060",
"t. c #D3D3D3",
"u. c #E6E6E6",
"v. c #F6F6F6",
"w. c #F3F3F3",
"x. c #DFDFDF",
"y. c #969696",
"z. c #B1B1B1",
"A. c #F8F8F8",
"B. c #E0E0E0",
"C. c #E3E3E3",
"D. c #828282",
"E. c #ECECEC",
"F. c #F0F0F0",
"G. c #ACACAC",
"H. c #787878",
"I. c #F5F5F5",
"J. c #EDEDED",
"K. c #A8A8A8",
"L. c #999999",
"M. c #9A9A9A",
"N. c #979797",
"O. c #777777",
"P. c #8D8D8D",
"Q. c #A7A7A7",
"R. c #818181",
"S. c #7D7D7D",
"T. c #7F7F7F",
"U. c #F7F7F7",
"V. c #F9F9F9",
"W. c #FAFAFA",
"X. c #FCFCFC",
"Y. c #FBFBFB",
"Z. c #909090",
"`. c #8E8E8E",
" + c #808080",
".+ c #7A7A7A",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" . + @ # $ % & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & % $ # @ + . ",
" * = - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & - = * ",
" . ; > & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & > ; . ",
" , ' & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ' , ",
" ) ! & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ! ) ",
" , ! & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ! , ",
" . ' & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ' . ",
" ; & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ; ",
" * > & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & > * ",
" = & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & = ",
" . - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & - . ",
" + & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & + ",
" @ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & @ ",
" # & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & # ",
" $ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & $ ",
" % & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ~ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { & & & & & & & & & % ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ~ % ] % ~ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ~ { % & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ^ / ( ] % & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { { _ : < [ & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ~ : } | < _ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ^ : } 1 2 & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & % } 3 4 5 : & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { _ 6 5 7 ; 1 & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { ] 8 9 0 a < ~ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { / $ b c d = e & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { - f , g h i { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { % - j k l m n o p & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ^ } = q r s 5 ^ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { _ t u | v w * x j / & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & > 5 y z A B u _ & & & & & & & & & & & & & & & & & & & & & & & & & & & & { C $ D E F r G ) H < % & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & / u I J K ) L C & & & & & & & & & & & & & & & & & & & & & & & & & & { ^ - M h N . O P Q s e > & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ~ R f z S T q 3 p & & & & & & & & & & & & & & & & & & & & & & & & & ^ / i ( U I O V z q d u C { & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { t W X Y Z ` ...^ & & & & & & & & & & & & & & & & & & & & & & { > p +.@.#.P X $.%.P &.2 t ^ { & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & > *.U %.Z =.-.;.a / & & & & & & & & & & & & & & & & & & & & { % C *.H >.Q z $.,.$. F = 5 _ { & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & > 5 '.$.Z ).!.~.{.p { & & & & & & & & & & & & & & & & & & { / p u ].^./.,.K (.J z ~.d _.R { & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ] +.;.V -.:.:.-.= _._ & & & & & & & & & & & & & & & & { _ p M <.[.. }.(.|.` K X 1.v k t ^ { & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & / 8 2.A Y 3.4.).~.{.i ^ & & & & & & & & & & & & & { _ p ..! @ w ,.|.5.S ` K V 1.6.| e ] { & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & : u d P 5.).7.8.9.;.f } ^ { & & & & & & & & { ^ / p M ! >.&.$.0.a.T a.|.,.V b.Q 9 M : ~ & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & / u + . |.c.d.e.8.a.; o i : ^ { & & { { ^ ] 6 $ b <.f.&.}.S T Y Y a.(.}.V b.w d ( 6 ^ { & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & : _.+ q $.Y g.h.h.i.5.j.h 1 5 < 6 6 p t 5 _.f 7 ;.~.,.a.Y Z k.Y 0.J X z P I n o p ^ & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & / _.y I 0.=.l.m.n.g.o.P ;.W 2 k <.@.h p.l I }.0.q.o.r.r.Z T (.$. 1.F v ' i _ { & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & / s.l w b.V t.u.m.v.w.d.).Z S V 1.r A J ` T -.r.=.x.=.r.Y 0.}. O 1.1.~., | *./ { & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & > ..y.z.~.1.%.Z 7.v.A.m.e.7.:.x.=.!.c.=.B.).:.C.3.=.k.a.}. 1.r . . F &.D.5 : { & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & % e x w q G . }.9.E.v.A.v.m.F.e.E.E.d.d.4.8.i.).o.a.}./.1.~.F ~.. F G.U +.C { { & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { p H.6.q G w G X Z g.F.I.v.I.w.n.e.J.4.i.x.k.S %.b.G w w I G r F &.@ ..C % { & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { R 1 K.q r z.G.6.b.` r.C.8.d.d.8.i.x.o.T ,./.G z.&.G.6.Q ~.. I G.>.+.C % { & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & > ..[.G 1.~., 0 n G.r V K 0.S ` ,.A b.I &.K.n ) m * I . q I , | ..: % { & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { < # 6.1.b.w n L.[.9 4 ;.M.2.j.M.;.N.N.;.j.^.m 6.G 1.r F n O.e C ^ { & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & / ..9 ~./.P Q n M.'.P.P.P.; ; ; 9 4 L.d Q.g F . . q z.L.f *.] { { & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & % 6 a ) . /./.F G.^.M.4 [.4 y.M.#.^.v * G . b.1.F G.= u < > { & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & _ i k v 1.V }.J ,.$.%.%.X X X X X %.V z O r z.M.@.j C ^ { & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { _ $ 2 ) q %.$.,.}.$.$.$.%.V z P q w + | 8 p ] { { & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { > i L 9 6.. /. A V A A P . F * 2. ._.i : ^ { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ~ > 6 5 <.E y G.* * 6.6.&.) N.p.o +.i : > { { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & % ] 6 *.M H ].7 W O.o u ..i 6 ] ^ ~ { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { ^ > / / : : ] ] ] : R 6 p < 6 R : ] % { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ~ { > : - 6 t t t t p 6 C _ % { { ~ ~ ~ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ~ ~ ^ : 6 i s.k 7 R.s p.D.S.O.f 5 < / % ~ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ~ { > - $ 1 T.4 ^.K.* Q G ~.F * m y N.R._.p ] { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ~ > - j # P.N 6.r V J 0.t.-.k.Y a.K A ~.K.M.W e C { ~ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ^ R *.<.; m q V ` k.x.:.8.7.E.J.E.d.i.=.Y $.G ) @ M C % & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { / t ( = m r $.t.x.g.J.n.I.U.A.V.V.A.U.I.h.d.x.a.A G.; M / { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ~ ^ R ..S.N G %.q.).d.h.I.V.W.X.X.X.X.X.X.X.Y.V.I.e.i.Z %.* x 5 : ~ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { ] t a B Q X t.B.4.h.v.V.Y.Y.W.V.A.U.U.U.U.A.V.V.V.v.F.u.Z V g | i ^ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & % : ..H.Q.P 0.r.8.F.I.A.V.A.v.m.h.l.E.7.d.d.7.J.e.n.m.I.m.e.:.Y Q.H R { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & > - u c w X -.C.J.w.U.v.m.e.8.x.-.0.$.z b.1.b. %.S o.3.7.F.h.7.B.0.1.Z..._ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ~ > p H j.1.|.9.4.F.I.m.h.d.).-.,.b.z.K.y j.N.4 y.L.y m G $.k.:.d.E.g.r.,.6.@.< { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ~ ] *.3 Q. t.).7.h.n.e.8.!.5.z z.n M.9 x @ p.s D.R.R.>.x 4 n ~.|.!.u.g.B.t./.4 5 > & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { C 5 W * %.k.:.E.F.l.g.c.0.O &.y 4 `.f.U U U = = @ U >.R. +s P.2.z.}.9.C.3.9.,.w ! R { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & % - M @ ~.K o.i.7.J.g.x.5./.g d B `.x c `.'.y.L.j.l 2.j.;.[.E = U x M.6.$.o.x.=.5.P = *.% & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & % 6 s.P.1.0.r.g.7.8.B.q.z z.N y.Z.P.; B M.+ K., * z.Q Q z.* v N L.'.E Z.l Q K o.c.-.%.^.s.] & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ^ 6 s.[.O 5.!.u.8.C.o.J q K.M.[.'.B L.y K.g I q 1.b.P O O P b.. G g n M.[.N.0 . 0.o.Z (.q <.R ~ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ^ < ( ;./.a.!.i.:.!.5. g + N.B y.2.n &.G b. V %.$.}.}.}.$.%.X A 1.F v d M.l * V T k.5./.>.} { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ^ p 1 j.z a.!.3.).Z ,.q K.l N.M.#.K.z.. %.J |.0.S S S S S 0.` (.J }.X /.r g N d Q.q K q.a.V y.e > & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & & ^ t 1 #.A t.c.B.c.T A z.N 2.j.y v Q P V K 0.a.t.t.Y q.q.q.q.T a.a.5.` ` (.}.z . g Q.Q.w A 0.0.$.K.M / & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & & & % t D l X a.r.!.Z |.1.G.^.d ^.m Q O $.` a.t.Y Y Y t.T a.5.0.` ` ` 0.0.0.0.S |.K V . 6.G.* 1.J S $.I ( C & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & & { % p ( #.A a.o.r.Y $.~.v ^.N K.Q P }.` a.q.q.t.T 5.,.q K.2.; f.p.p.E M.K.1.}.(.0.` (.X 1.w 6.~.X |.J . 2 6 ~ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & & { % < ( j.V 5.Z Z 5.V F m n m w 1.$.` a.T a.S 0.O Q.; .h <.H ( _._._._.D <.h c g $.(.|.K X 1.I q /.}.}.1.| } ^ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & { ^ 6 ( N.z S Y Y ` I , m g q V (.S a.a.(.V K.c ' o b ..i 6 C / ^ ^ ^ _ : p *._.k x 1.J K ,.A 1.r /.%.$.b.c *.^ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & & % R _.'./.` q.t.(.O I g 6.G O }.|.0.|.,.r M..+o b *.p / ^ { { & & & & & & & & ^ / t _.W w $.(.}.z 1.O V %.b.9 5 > & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & & { C s.E O (.a.5.}.P F z.I 1.V }.K J $.w ; 2 D ..p _ { & & & & & & & & & & & & & & & ^ R M ' z.X J }. /.A V b.L.+.] & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & & { : +.>.P K S ` %.1.F I r P X $.%.z &.p.# _.i C ^ { & & & & & & & & & & & & & & & & & & { / +.H.G %.,.$.A A A 1.d M ] & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & & ~ ] ..| r ,.` (.%.b.G G 1. V %.z * @ <.8 p / { & & & & & & & & & & & & & & & & & & & & & & { : M @ O }.}.%.A z . ^.s.: & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & { _ e ' I %.K J X b.r 1.b.z z /.w c o 8 < _ ^ & & & & & & & & & & & & & & & & & & & & & & & & & { - D #.z }.,.%.V 1.) u : & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & & & _ $ k g A J ,.X P 1.1.P O P w Z.# u p / { & & & & & & & & & & & & & & & & & & & & & & & & & & & & % i ].r %.J }.V . K._.: & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & { ^ } ! ) }.}.X /.b.. P b.G M.2 u } / { { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & : u L. $.J X 1.&.( : & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & & % < 1 2.O %.$.V b.1.r q n .( i C ^ { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & % } {.G X ,.$.P * 1 : & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & & { R u `.. V X X b.~.F G.f.H 5 - _ { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & : b M.z }.$.O 6.( : & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & ~ / +.R.F A V X 1.G * N.k M t _ { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ^ $ 7 1.X }./.* ( C & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & & & ] *.' 6.O A A O ~.Q + .+s.} / { { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & R a K.z %./.* _.: & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & { _ } f m b.A P F G.; 1 e R ^ { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & _ M `.P V /.&._.: & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & & % < b #.~. r Q y ' ..< _ { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { } @.F P v u / & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & & { : 8 `.F b.O ~.G.'.( i / ^ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { - 1 n b.b.) 8 / & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & { ] j S.6.r 1.I N ' ..6 > ~ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & / +.; . r N M / & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & & & > } k K.I G * '.D i / % & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ^ } h Q I j..._ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & { ^ 6 b 2.6.6.n W 8 6 > ~ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & { - D ^.g 9 5 _ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & & { : 5 c K.m 4 L *./ % & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & / M P.Q.@ *.^ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & { _ t ' #.+ +8 p > { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & % $ 7 l 7 t % & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & ^ - u '.Z.o e - % & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ~ R s.9 L - ~ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & _ < | ...p ] { { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ] t +$ / ~ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & ] b s.< : ^ ~ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ^ / ( / ^ { & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" & & & & & & & & > ] _ > % & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ~ % _ % ~ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ",
" % & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & % ",
" $ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & $ ",
" # & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & # ",
" @ & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & @ ",
" + & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & + ",
" . - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & - . ",
" = & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & = ",
" * > & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & > * ",
" ; & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ; ",
" . ' & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ' . ",
" , ! & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ! , ",
" ) ! & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ! ) ",
" , ' & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & ' , ",
" . ; > & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & > ; . ",
" * = - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & - = * ",
" . + @ # $ % & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & % $ # @ + . ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "};

30
xorg-xdm/startDM.sh Normal file
View File

@@ -0,0 +1,30 @@
#!/bin/sh
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2
# We need to source /etc/profile for stuff like $LANG to work
# bug #10190.
. /etc/profile
. /etc/init.d/functions.sh
# baselayout-1 compat
if ! type get_options >/dev/null 2>/dev/null ; then
[ -r "${svclib}"/sh/rc-services.sh ] && . "${svclib}"/sh/rc-services.sh
fi
# Great new Gnome2 feature, AA
# We enable this by default
export GDK_USE_XFT=1
export SVCNAME=xdm
EXEC="$(get_options service)"
NAME="$(get_options name)"
PIDFILE="$(get_options pidfile)"
START_STOP_ARGS="$(get_options start_stop_args)"
start-stop-daemon --start --exec ${EXEC} \
${NAME:+--name} ${NAME} ${PIDFILE:+--pidfile} ${PIDFILE} ${START_STOP_ARGS} || \
eerror "ERROR: could not start the Display Manager"
# vim:ts=4

View File

@@ -0,0 +1,10 @@
diff --git a/config/GiveConsole b/config/GiveConsole
index f8a8c6d..cb68622 100644
--- a/config/GiveConsole
+++ b/config/GiveConsole
@@ -7,3 +7,5 @@
# causing serious grief.
#
chown $USER /dev/console
+exec /usr/bin/sessreg -a -w "/var/log/wtmp" -u "/run/utmp" \
+ -x "/etc/X11/xdm/Xservers" -l $DISPLAY -h "" $USER

13
xorg-xdm/xdm-setup.initd Normal file
View File

@@ -0,0 +1,13 @@
#!/sbin/openrc-run
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
depend() {
need localmount
}
start() {
if get_bootparam "nox" ; then
touch /etc/.noxdm
fi
}

10
xorg-xdm/xdm.confd Normal file
View File

@@ -0,0 +1,10 @@
# We always try and start X on a static VT. The various DMs normally default
# to using VT7. If you wish to use the xdm init script, then you should ensure
# that the VT checked is the same VT your DM wants to use. We do this check to
# ensure that you haven't accidentally configured something to run on the VT
# in your /etc/inittab file so that you don't get a dead keyboard.
CHECKVT=7
# What display manager do you use ? [ xdm | slim | tdm ]
# NOTE: If this is set in /etc/rc.conf, that setting will override this one.
DISPLAYMANAGER="xdm"

196
xorg-xdm/xdm.initd Normal file
View File

@@ -0,0 +1,196 @@
#!/sbin/openrc-run
# Copyright 1999-2014 Gentoo Foundation
# Copyright 2017-2019 Hyperbola Project
# Distributed under the terms of the GNU General Public License, v2
# This is here to serve as a note to myself, and future developers.
#
# Any Display manager (gdm,kdm,xdm) has the following problem: if
# it is started before any getty, and no vt is specified, it will
# usually run on vt2. When the getty on vt2 then starts, and the
# DM is already started, the getty will take control of the keyboard,
# leaving us with a "dead" keyboard.
#
# Resolution: add the following line to /etc/inittab
#
# x:a:once:/etc/X11/startDM.sh
#
# and have /etc/X11/startDM.sh start the DM in daemon mode if
# a lock is present (with the info of what DM should be started),
# else just fall through.
#
# How this basically works, is the "a" runlevel is a additional
# runlevel that you can use to fork processes with init, but the
# runlevel never gets changed to this runlevel. Along with the "a"
# runlevel, the "once" key word means that startDM.sh will only be
# run when we specify it to run, thus eliminating respawning
# startDM.sh when "xdm" is not added to the default runlevel, as was
# done previously.
#
# This script then just calls "telinit a", and init will run
# /etc/X11/startDM.sh after the current runlevel completes (this
# script should only be added to the actual runlevel the user is
# using).
#
# Martin Schlemmer
# aka Azarah
# 04 March 2002
depend() {
need localmount xdm-setup
# this should start as early as possible
# we can't do 'before *' as that breaks it
# (#139824) Start after ypbind and autofs for network authentication
# (#145219 #180163) Could use lirc mouse as input device
# (#70689 comment #92) Start after consolefont to avoid display corruption
# (#291269) Start after quota, since some dm need readable home
# (#390609) gdm-3 will fail when dbus is not running
# (#366753) starting keymaps after X causes problems
after bootmisc consolefont modules netmount
after readahead-list ypbind autofs openvpn gpm lircmd
after quota keymaps
before alsasound
# Start before X
use xfs
}
setup_dm() {
local MY_XDM
MY_XDM=$(echo "${DISPLAYMANAGER}" | tr '[:upper:]' '[:lower:]')
# Load our root path from profile.env
# Needed for kdm
PATH=${PATH}:$(. /etc/profile; echo "${PATH}")
NAME=
case "${MY_XDM}" in
wdm)
EXE="/usr/bin/wdm"
PIDFILE=
;;
slim)
EXE="/usr/bin/slim"
START_STOP_ARGS="-nodaemon --background"
PIDFILE=/run/slim.pid
;;
*)
# first find out if there is such executable
EXE="$(command -v ${MY_XDM} 2>/dev/null)"
PIDFILE="/run/${MY_XDM}.pid"
# warn user that he is doing sick things if the exe was not found
if [ -z "${EXE}" ]; then
echo "ERROR: Your XDM value is invalid."
echo " No ${MY_XDM} executable could be found on your system."
fi
;;
esac
if ! [ -x "${EXE}" ]; then
EXE="/usr/bin/xdm"
PIDFILE=/run/xdm.pid
if ! [ -x "/usr/bin/xdm" ]; then
echo "ERROR: Please set your DISPLAYMANAGER variable in /etc/conf.d/xdm,"
echo " or install xorg-xdm package"
eend 255
fi
fi
}
# Check to see if something is defined on our VT
vtstatic() {
if [ -e /etc/inittab ] ; then
grep -Eq "^[^#]+.*\<tty$1\>" /etc/inittab
elif [ -e /etc/ttys ] ; then
grep -q "^ttyv$(($1 - 1))" /etc/ttys
else
return 1
fi
}
start() {
local EXE NAME PIDFILE AUTOCLEAN_CGROUP
setup_dm
if [ -f /etc/.noxdm ]; then
einfo "Skipping ${EXE##*/}, /etc/.noxdm found or \"nox\" bootparam passed."
rm /etc/.noxdm
return 0
fi
ebegin "Setting up ${EXE##*/}"
# save the prefered DM
save_options "service" "${EXE}"
save_options "name" "${NAME}"
save_options "pidfile" "${PIDFILE}"
save_options "start_stop_args" "${START_STOP_ARGS}"
save_options "autoclean_cgroup" "${AUTOCLEAN_CGROUP:-no}"
if [ -n "${CHECKVT-y}" ] ; then
if vtstatic "${CHECKVT:-7}" ; then
if [ -x /sbin/telinit ] && [ "${SOFTLEVEL}" != "BOOT" ] && [ "${RC_SOFTLEVEL}" != "BOOT" ]; then
ewarn "Something is already defined on VT ${CHECKVT:-7}, will start X later"
telinit a >/dev/null 2>&1
return 0
else
eerror "Something is already defined on VT ${CHECKVT:-7}, not starting"
return 1
fi
fi
fi
/etc/X11/startDM.sh
eend 0
}
stop() {
local curvt retval
retval=0
if [ -t 0 ]; then
if type fgconsole >/dev/null 2>&1; then
curvt=$(fgconsole 2>/dev/null)
else
curvt=$(tty)
case "${curvt}" in
/dev/ttyv[0-9]*) curvt=${curvt#/dev/ttyv} ;;
*) curvt= ;;
esac
fi
fi
local myexe myname mypidfile myservice
myexe=$(get_options "service")
myname=$(get_options "name")
mypidfile=$(get_options "pidfile")
myservice=${myexe##*/}
yesno "${rc_cgroup_cleanup:-no}" || rc_cgroup_cleanup=$(get_options "autoclean_cgroup")
[ -z "${myexe}" ] && return 0
ebegin "Stopping ${myservice}"
if start-stop-daemon --quiet --test --stop --exec "${myexe}"; then
start-stop-daemon --stop --exec "${myexe}" --retry TERM/5/TERM/5 \
${mypidfile:+--pidfile} ${mypidfile} \
${myname:+--name} ${myname}
retval=${?}
fi
# switch back to original vt
if [ -n "${curvt}" ]; then
if type chvt >/dev/null 2>&1; then
chvt "${curvt}"
else
vidcontrol -s "$((curvt + 1))"
fi
fi
eend ${retval} "Error stopping ${myservice}"
return ${retval}
}
# vim: set ts=4 :

View File

@@ -0,0 +1,3 @@
post_install() {
echo " ==> Edit /etc/conf.d/xdm to set environment."
}