forked from pool/xauth
Accepting request 113485 from home:vuntz:branches:X11:XOrg
Split xauth out of xorg-x11; no change to the content OBS-URL: https://build.opensuse.org/request/show/113485 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xauth?expand=0&rev=1
This commit is contained in:
commit
12a0495e4f
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
62
u_xauth_Look-for-FamilyLocal-if-inet-or-inet6-addr.patch
Normal file
62
u_xauth_Look-for-FamilyLocal-if-inet-or-inet6-addr.patch
Normal file
@ -0,0 +1,62 @@
|
||||
--- gethost.c.orig 2010-09-04 01:04:27.000000000 +0200
|
||||
+++ gethost.c 2012-01-10 17:57:22.072108000 +0100
|
||||
@@ -318,16 +318,36 @@ struct addrlist *get_address_info (
|
||||
for (ai = firstai; ai != NULL; ai = ai->ai_next) {
|
||||
struct addrlist *duplicate;
|
||||
|
||||
+ len = 0;
|
||||
if (ai->ai_family == AF_INET) {
|
||||
struct sockaddr_in *sin = (struct sockaddr_in *)ai->ai_addr;
|
||||
src = &(sin->sin_addr);
|
||||
- len = sizeof(sin->sin_addr);
|
||||
- family = FamilyInternet;
|
||||
+ if (*(in_addr_t *) src == htonl(INADDR_LOOPBACK)) {
|
||||
+ family = FamilyLocal;
|
||||
+ if(get_local_hostname (buf, sizeof buf, localhostname)) {
|
||||
+ src = buf;
|
||||
+ len = strlen (buf);
|
||||
+ } else
|
||||
+ src = NULL;
|
||||
+ } else {
|
||||
+ len = sizeof(sin->sin_addr);
|
||||
+ family = FamilyInternet;
|
||||
+ }
|
||||
} else if (ai->ai_family == AF_INET6) {
|
||||
struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)ai->ai_addr;
|
||||
src = &(sin6->sin6_addr);
|
||||
- len = sizeof(sin6->sin6_addr);
|
||||
- family = FamilyInternet6;
|
||||
+ if (IN6_IS_ADDR_V4MAPPED((struct sockaddr_in6 *)src)
|
||||
+ || IN6_IS_ADDR_LOOPBACK((struct sockaddr_in6 *)src)) {
|
||||
+ family = FamilyLocal;
|
||||
+ if (get_local_hostname (buf, sizeof buf, localhostname)) {
|
||||
+ src = buf;
|
||||
+ len = strlen (buf);
|
||||
+ } else
|
||||
+ src = NULL;
|
||||
+ } else {
|
||||
+ len = sizeof(sin6->sin6_addr);
|
||||
+ family = FamilyInternet6;
|
||||
+ }
|
||||
}
|
||||
|
||||
for(duplicate = retval; duplicate != NULL; duplicate = duplicate->next) {
|
||||
@@ -366,7 +386,17 @@ struct addrlist *get_address_info (
|
||||
#else
|
||||
if (!get_inet_address (host, &hostinetaddr)) return NULL;
|
||||
src = (char *) &hostinetaddr;
|
||||
- len = 4; /* sizeof inaddr.sin_addr, would fail on Cray */
|
||||
+ if (*(in_addr_t *) src == htonl(INADDR_LOOPBACK)) {
|
||||
+ family = FamilyLocal;
|
||||
+ if (get_local_hostname (buf, sizeof buf)) {
|
||||
+ src = buf;
|
||||
+ len = strlen (buf);
|
||||
+ } else {
|
||||
+ len = 0;
|
||||
+ src = NULL;
|
||||
+ }
|
||||
+ } else
|
||||
+ len = 4; /* sizeof inaddr.sin_addr, would fail on Cray */
|
||||
break;
|
||||
#endif /* IPv6 */
|
||||
#else
|
17
xauth-1.0.2.diff
Normal file
17
xauth-1.0.2.diff
Normal file
@ -0,0 +1,17 @@
|
||||
Index: process.c
|
||||
===================================================================
|
||||
--- process.c.orig
|
||||
+++ process.c
|
||||
@@ -1296,8 +1296,11 @@ remove_entry(char *inputfilename, int li
|
||||
/*
|
||||
* unlink the auth we were asked to
|
||||
*/
|
||||
- while (!eq_auth((list = *listp)->auth, auth))
|
||||
+ while (!eq_auth((list = *listp)->auth, auth)) {
|
||||
listp = &list->next;
|
||||
+ if (!*listp)
|
||||
+ return 0;
|
||||
+ }
|
||||
*listp = list->next;
|
||||
XauDisposeAuth (list->auth); /* free the auth */
|
||||
free (list); /* free the link */
|
3
xauth-1.0.5.tar.bz2
Normal file
3
xauth-1.0.5.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6d139500ff1daf806525adf071f8c1778ad138a0378c73ea831ad18847ad746c
|
||||
size 129568
|
148
xauth-tolerant-hostname-changes.diff
Normal file
148
xauth-tolerant-hostname-changes.diff
Normal file
@ -0,0 +1,148 @@
|
||||
Index: xauth-1.0.5/gethost.c
|
||||
===================================================================
|
||||
--- xauth-1.0.5.orig/gethost.c
|
||||
+++ xauth-1.0.5/gethost.c
|
||||
@@ -244,7 +244,8 @@ struct addrlist *get_address_info (
|
||||
int family,
|
||||
char *fulldpyname,
|
||||
int prefix,
|
||||
- char *host)
|
||||
+ char *host,
|
||||
+ char *localhostname)
|
||||
{
|
||||
struct addrlist *retval = NULL;
|
||||
int len = 0;
|
||||
@@ -274,7 +275,7 @@ struct addrlist *get_address_info (
|
||||
if (prefix == 0 && (strncmp (fulldpyname, "unix:", 5) == 0 ||
|
||||
fulldpyname[0] == ':')) {
|
||||
|
||||
- if (!get_local_hostname (buf, sizeof buf)) {
|
||||
+ if (!get_local_hostname (buf, sizeof buf, localhostname)) {
|
||||
len = 0;
|
||||
} else {
|
||||
src = buf;
|
||||
Index: xauth-1.0.5/parsedpy.c
|
||||
===================================================================
|
||||
--- xauth-1.0.5.orig/parsedpy.c
|
||||
+++ xauth-1.0.5/parsedpy.c
|
||||
@@ -74,20 +74,24 @@ copystring (char *src, int len)
|
||||
|
||||
|
||||
char *
|
||||
-get_local_hostname (char *buf, int maxlen)
|
||||
+get_local_hostname (char *buf, int maxlen, char *localhostname)
|
||||
{
|
||||
buf[0] = '\0';
|
||||
+ if (localhostname)
|
||||
+ strncpy(buf, localhostname, maxlen);
|
||||
+ else
|
||||
(void) XmuGetHostname (buf, maxlen);
|
||||
+
|
||||
return (buf[0] ? buf : NULL);
|
||||
}
|
||||
|
||||
#ifndef UNIXCONN
|
||||
static char *
|
||||
-copyhostname (void)
|
||||
+copyhostname (char *localhostname)
|
||||
{
|
||||
char buf[256];
|
||||
|
||||
- return (get_local_hostname (buf, sizeof buf) ?
|
||||
+ return (get_local_hostname (buf, sizeof buf, localhostname) ?
|
||||
copystring (buf, strlen (buf)) : NULL);
|
||||
}
|
||||
#endif
|
||||
@@ -97,6 +101,7 @@ copyhostname (void)
|
||||
*/
|
||||
Bool
|
||||
parse_displayname (char *displayname,
|
||||
+ char *localhostname,
|
||||
int *familyp, /* return */
|
||||
char **hostp, /* return */
|
||||
int *dpynump, /* return */
|
||||
@@ -138,7 +143,7 @@ parse_displayname (char *displayname,
|
||||
host = copystring ("0", 1);
|
||||
family = FamilyDECnet;
|
||||
} else {
|
||||
- host = copyhostname ();
|
||||
+ host = copyhostname (localhostname);
|
||||
family = FamilyInternet;
|
||||
}
|
||||
#endif
|
||||
Index: xauth-1.0.5/process.c
|
||||
===================================================================
|
||||
--- xauth-1.0.5.orig/process.c
|
||||
+++ xauth-1.0.5/process.c
|
||||
@@ -466,7 +466,7 @@ read_auth_entries(FILE *fp, Bool numeric
|
||||
}
|
||||
|
||||
static Bool
|
||||
-get_displayname_auth(char *displayname, AuthList **authl)
|
||||
+get_displayname_auth(char *displayname, AuthList **authl, char *localhostname)
|
||||
{
|
||||
int family;
|
||||
char *host = NULL, *rest = NULL;
|
||||
@@ -486,11 +486,13 @@ get_displayname_auth(char *displayname,
|
||||
prelen = (cp - displayname);
|
||||
|
||||
if (!parse_displayname (displayname + ((prelen > 0) ? prelen + 1 : 0),
|
||||
+ localhostname,
|
||||
&family, &host, &dpynum, &scrnum, &rest)) {
|
||||
return False;
|
||||
}
|
||||
|
||||
- addrlist_head = get_address_info(family, displayname, prelen, host);
|
||||
+ addrlist_head = get_address_info(family, displayname, prelen, host,
|
||||
+ localhostname);
|
||||
if (addrlist_head) {
|
||||
char buf[40]; /* want to hold largest display num */
|
||||
unsigned short dpylen;
|
||||
@@ -1220,13 +1222,19 @@ iterdpy (char *inputfilename, int lineno
|
||||
Xauth *tmp_auth;
|
||||
AuthList *proto_head, *proto;
|
||||
AuthList *l, *next;
|
||||
+ /*
|
||||
+ * get saved local address from environment in case the host
|
||||
+ * name has changed after the credential was added.
|
||||
+ */
|
||||
+ char *xlocalhostname = getenv("XAUTHLOCALHOSTNAME");
|
||||
+
|
||||
|
||||
/*
|
||||
* iterate
|
||||
*/
|
||||
for (i = start; i < argc; i++) {
|
||||
char *displayname = argv[i];
|
||||
- if (!get_displayname_auth (displayname, &proto_head)) {
|
||||
+ if (!get_displayname_auth (displayname, &proto_head, xlocalhostname)) {
|
||||
prefix (inputfilename, lineno);
|
||||
baddisplayname (displayname, argv[0]);
|
||||
errors++;
|
||||
@@ -1569,7 +1577,7 @@ do_add(char *inputfilename, int lineno,
|
||||
}
|
||||
}
|
||||
|
||||
- if (!get_displayname_auth (dpyname, &list)) {
|
||||
+ if (!get_displayname_auth (dpyname, &list, NULL)) {
|
||||
prefix (inputfilename, lineno);
|
||||
baddisplayname (dpyname, argv[0]);
|
||||
free (key);
|
||||
Index: xauth-1.0.5/xauth.h
|
||||
===================================================================
|
||||
--- xauth-1.0.5.orig/xauth.h
|
||||
+++ xauth-1.0.5/xauth.h
|
||||
@@ -51,10 +51,10 @@ struct addrlist {
|
||||
};
|
||||
|
||||
extern char *get_hostname ( Xauth *auth );
|
||||
-extern struct addrlist *get_address_info ( int family, char *fulldpyname, int prefix, char *host);
|
||||
+extern struct addrlist *get_address_info ( int family, char *fulldpyname, int prefix, char *host, char *localhostname);
|
||||
extern char *copystring ( char *src, int len );
|
||||
-extern char *get_local_hostname ( char *buf, int maxlen );
|
||||
-extern Bool parse_displayname ( char *displayname, int *familyp, char **hostp, int *dpynump, int *scrnump, char **restp );
|
||||
+extern char *get_local_hostname ( char *buf, int maxlen , char *localhostname);
|
||||
+extern Bool parse_displayname ( char *displayname, char *localhostname, int *familyp, char **hostp, int *dpynump, int *scrnump, char **restp );
|
||||
extern int auth_initialize ( char *authfilename );
|
||||
extern int auth_finalize ( void );
|
||||
extern int process_command ( char *inputfilename, int lineno, int argc, char **argv );
|
5
xauth.changes
Normal file
5
xauth.changes
Normal file
@ -0,0 +1,5 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 13 08:46:08 UTC 2012 - vuntz@opensuse.org
|
||||
|
||||
- Split xauth from xorg-x11. Initial version: 1.0.5.
|
||||
|
64
xauth.spec
Normal file
64
xauth.spec
Normal file
@ -0,0 +1,64 @@
|
||||
#
|
||||
# spec file for package xauth
|
||||
#
|
||||
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
Name: xauth
|
||||
Version: 1.0.5
|
||||
Release: 0
|
||||
License: MIT
|
||||
Summary: Utility to edit and display the X authorization information
|
||||
Url: http://xorg.freedesktop.org/
|
||||
Group: System/X11/Utilities
|
||||
Source0: http://xorg.freedesktop.org/releases/individual/app/%{name}-%{version}.tar.bz2
|
||||
# PATCH-FIX-UPSTREAM xauth-1.0.2.diff fdo#48642 -- Fix crash on removing non-existant entry
|
||||
Patch0: xauth-1.0.2.diff
|
||||
Patch1: xauth-tolerant-hostname-changes.diff
|
||||
Patch2: u_xauth_Look-for-FamilyLocal-if-inet-or-inet6-addr.patch
|
||||
BuildRequires: pkg-config
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: pkgconfig(xau)
|
||||
BuildRequires: pkgconfig(xext)
|
||||
BuildRequires: pkgconfig(xmuu)
|
||||
BuildRequires: pkgconfig(xorg-macros) >= 1.8
|
||||
# Name of subpackage when this was part of the xorg-x11 package up to version 7.6
|
||||
Provides: xorg-x11-xauth = 7.6
|
||||
Obsoletes: xorg-x11-xauth <= 7.6
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
%description
|
||||
The xauth program is used to edit and display the authorization
|
||||
information used in connecting to the X server.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p0
|
||||
%patch1 -p1
|
||||
%patch2 -p0
|
||||
|
||||
%build
|
||||
%configure
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
%make_install
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%doc ChangeLog COPYING README
|
||||
%{_bindir}/xauth
|
||||
%{_mandir}/man1/xauth.1%{?ext_man}
|
||||
|
||||
%changelog
|
Loading…
Reference in New Issue
Block a user