Skip to content

Commit

Permalink
Export LTSP_CLIENT_MAC in thin client sessions
Browse files Browse the repository at this point in the history
  • Loading branch information
alkisg committed Nov 8, 2011
1 parent 1d1a9a7 commit e9832cb
Show file tree
Hide file tree
Showing 7 changed files with 69 additions and 11 deletions.
7 changes: 4 additions & 3 deletions debian/epoptes-client.install
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
epoptes-client usr/share/
epoptes-client/data/epoptes-client.desktop etc/xdg/autostart/
sbin/* usr/sbin/
etc/xdg/autostart/
usr/sbin/
usr/share/epoptes-client/
usr/share/ldm/rc.d/
1 change: 0 additions & 1 deletion epoptes-client.8
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
.IX Title "EPOPTES-CLIENT 8"
.TH EPOPTES-CLIENT 8 "2011-11-03" epoptes-client epoptes-client

.SH "NAME"
Expand Down
36 changes: 36 additions & 0 deletions epoptes-client/X50-client-env
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/sh

###########################################################################
# Export some useful vars in the LTSP session environment.
# Sourced by LDM.
#
# Copyright (C) 2011 Alkis Georgopoulos <alkisg@gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# On Debian GNU/Linux systems, the complete text of the GNU General
# Public License can be found in `/usr/share/common-licenses/GPL'.
###########################################################################

# Keep the following code synced with epoptes-client
def_iface=$(route -n | sed -n "/^0.0.0.0/s/.* //p")
def_iface=${def_iface:-$(route -n | awk '$2=="0.0.0.0" { print $8; exit }')}
if [ -n "$def_iface" ]; then
MAC=$(ip -oneline -family inet link show dev "$def_iface" | sed "s/.*ether \([^ ]*\).*/\\1/")
MAC=$(echo "$MAC" | sed 'y/abcdef-/ABCDEF:/;s/[^A-F0-9:]//g')
test -n "$MAC" && CLIENT_ENV="$CLIENT_ENV LTSP_CLIENT_MAC=$MAC"
fi

# LTSP_FATCLIENT unfortunately isn't set in LTSP fat client sessions. Set it.
test -n "$LTSP_FATCLIENT" && CLIENT_ENV="$CLIENT_ENV LTSP_FATCLIENT=$LTSP_FATCLIENT"
9 changes: 5 additions & 4 deletions sbin/epoptes-client → epoptes-client/epoptes-client
Original file line number Diff line number Diff line change
Expand Up @@ -100,13 +100,14 @@ epoptes_info() {
VGA=$(lspci -nn -m | sed -n -e '/"VGA/s/[^"]* "[^"]*" "[^"]*" "\([^"]*\)" .*/\1/p')

# If epoptes-client is ran on a thin client from a user account (meaning
# that it actually runs on the server), then use $LTSP_CLIENT_HOSTNAME and
# $LTSP_CLIENT instead of $HOSTNAME and $IP.
# MAC, CPU, RAM and VGA are not available in the environment, so we're
# leaving the ones of the server.
# that it actually runs on the server), then use $LTSP_CLIENT_HOSTNAME,
# $LTSP_CLIENT and $LTSP_CLIENT_MAC instead of $HOSTNAME, $IP and $MAC.
# CPU, RAM and VGA are not available in the environment, so we're leaving
# the ones of the server.
if [ "$TYPE" = "thin" ] && [ "$UID" -ne 0 ]; then
test -n "$LTSP_CLIENT" && IP="$LTSP_CLIENT"
test -n "$LTSP_CLIENT_HOSTNAME" && HOSTNAME="$LTSP_CLIENT_HOSTNAME"
test -n "$LTSP_CLIENT_MAC" && MAC="$LTSP_CLIENT_MAC"
fi

export HOSTNAME IP MAC TYPE USER UID CPU RAM VGA SERVER PORT
Expand Down
File renamed without changes.
1 change: 0 additions & 1 deletion epoptes.1
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
.IX Title "EPOPTES 1"
.TH EPOPTES 1 "2011-09-22" epoptes epoptes

.SH "NAME"
Expand Down
26 changes: 24 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,28 @@ def changelog_version(changelog="debian/changelog"):

return version

def subtract_files(a, b):
res = set(a)
for dir, files in b:
res -= set(files)
return list(res)

client_special_files=[
('/etc/xdg/autostart/',
['epoptes-client/epoptes-client.desktop']),
('/usr/sbin/',
['epoptes-client/epoptes-client']),
('/usr/share/ldm/rc.d/',
['epoptes-client/X50-client-env']),
]
client_usr_share_files=[
('/usr/share/epoptes-client/',
subtract_files(glob('epoptes-client/*'), client_special_files))
]
server_special_files=[
('/usr/share/ltsp/plugins/ltsp-build-client/common/',
['data/040-epoptes-certificate'])];

DistUtilsExtra.auto.setup(
name='epoptes',
version = changelog_version(),
Expand All @@ -58,6 +80,6 @@ def changelog_version(changelog="debian/changelog"):
author = 'Fotis Tsamis',
author_email = 'ftsamis@gmail.com',
py_modules = ['twisted.plugins.epoptesd'],
data_files = [('/usr/share/ltsp/plugins/ltsp-build-client/common/',
['data/040-epoptes-certificate'])],
data_files = client_special_files + client_usr_share_files +
server_special_files
)

0 comments on commit e9832cb

Please sign in to comment.