initial commit of file from CVS for smeserver-thinclient on Sat Sep 7 21:08:43 AEST 2024

This commit is contained in:
Trevor Batley 2024-09-07 21:08:43 +10:00
parent d26600661b
commit 137c6dfb87
17 changed files with 2107 additions and 2 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
*.rpm
*.log
*spec-20*
*.tar.xz

21
Makefile Normal file
View File

@ -0,0 +1,21 @@
# Makefile for source rpm: smeserver-thinclient
# $Id: Makefile,v 1.1 2020/10/29 18:35:38 brianr Exp $
NAME := smeserver-thinclient
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
ifeq ($(MAKEFILE_COMMON),)
# attept a checkout
define checkout-makefile-common
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
endef
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
endif
include $(MAKEFILE_COMMON)

View File

@ -1,3 +1,17 @@
# smeserver-thinclient
# <img src="https://www.koozali.org/images/koozali/Logo/Png/Koozali_logo_2016.png" width="25%" vertical="auto" style="vertical-align:bottom"> smeserver-thinclient
SMEServer Koozali developed git repo for smeserver-thinclient smecontribs
SMEServer Koozali developed git repo for smeserver-thinclient smecontribs
## Wiki
<br />https://wiki.koozali.org/Thinclient
<br />https://wiki.koozali.org/PXE_via_Thinclient
<br />https://wiki.koozali.org/Thinclient_usage
## Bugzilla
Show list of outstanding bugs: [here](https://bugs.koozali.org/buglist.cgi?component=smeserver-thinclient&product=SME%20Contribs&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED)
## Description
<br />*This description has been generated by an LLM AI system and cannot be relied on to be fully correct.*
*Once it has been checked, then this comment will be deleted*
<br />

1
contriborbase Normal file
View File

@ -0,0 +1 @@
contribs10

27
createlinks Normal file
View File

@ -0,0 +1,27 @@
#!/usr/bin/perl -w
use esmith::Build::CreateLinks qw(:all);
use File::Basename;
use File::Path;
# our event specific for updating with yum without reboot
$event = 'smeserver-thinclient-update';
#add here the path to your templates needed to expand
event_templates($event, '/etc/dhcpd.thinclient');
#see the /etc/systemd/system-preset/49-koozali.preset should be present for systemd integration on all you yum update event
#foreach my $file (qw(
# /etc/dhcpd.thinclient
#))
#{
# templates2events( $file, $event );
#}
#action needed in case we have a systemd unit
# event_link('systemd-default', $event, '10');
# event_link('systemd-reload', $event, '50');
#action specific to this package
#event_link('action', $event, '30');
#services we need to restart
event_services($event, 'dhcpd' => 'restart');
#safe_symlink('restart',"root/etc/e-smith/events/$event/services2adjust/dhcpd");
#and Server Manager panel link
panel_link("thinclient", "manager")

View File

@ -0,0 +1,5 @@
{
my $thinclient = $DB->get("thinclient") or return;
$thinclient->delete;
}

View File

@ -0,0 +1 @@
32 bit EFI

View File

@ -0,0 +1 @@
arch

View File

@ -0,0 +1 @@
64 bit EFI

View File

@ -0,0 +1 @@
arch

View File

@ -0,0 +1 @@
default

View File

@ -0,0 +1,3 @@
{
$DB = esmith::ConfigDB->open(${DB_FILENAME});
}

View File

@ -0,0 +1,5 @@
{
my $default = $DB->get("default") or return;
$default->delete;
}

View File

@ -0,0 +1,7 @@
{
if ($pxe{status} eq "enabled")
{
$OUT .= " # include infdividually managed workstations\n";
$OUT .= " include \"/etc/dhcpd.thinclient\";\n";
}
}

View File

@ -0,0 +1,66 @@
{
if ($pxe{status} eq "enabled")
{
my $pxeclients = esmith::ConfigDB->open('thinclient');
my @pxedists = $pxeclients->get_all_by_prop('type' => 'dist');
$OUT .= "\n # Individually managed workstations defined by smeserver-thinclient\n\n";
foreach my $distrec (@pxedists)
{
my $dist = $distrec->key;
my $dir = $pxeclients->get_prop($dist, 'dir');
my $dprog = $pxeclients->get_prop($dist, 'prog');
my @macs = $pxeclients->get_all_by_prop('base', $dist);
if (@macs)
{
$OUT .= " group { # clients for $dist Distribution\n";
$OUT .= " allow bootp;\n";
my $seq = 0;
while (my ($arch, $aprog) = each (%pxe))
{
unless ($arch eq 'default' || $arch eq 'type' || $arch eq 'status' || $arch eq 'nextserver' || $arch eq 'dir')
{
my $prog = $pxeclients->get_prop($dist, $arch);
if ($prog)
{
++$seq;
if ($seq eq 1)
{
$OUT .= " if option client-architecture = $arch {\n";
$OUT .= " filename \"$dir/$prog\";\n";
$OUT .= " }\n";
}
else
{
$OUT .= " elsif option client-architecture = $arch {\n";
$OUT .= " filename \"$dir/$prog\";\n";
$OUT .= " }\n";
}
}
}
}
if ($seq eq 0)
{
$OUT .= " filename \"$dir/$dprog\";\n";
}
else
{
$OUT .= " else {\n";
$OUT .= " filename \"$dir/$dprog\";\n";
$OUT .= " }\n";
}
foreach my $client (@macs)
{
if ($client->prop('status') eq 'enabled')
{
my $host = $client->prop('name') || $client->key;
$host =~ s/://g;
$OUT .= " host $host {\n";
$OUT .= " hardware ethernet ".$client->key.";\n";
$OUT .= " }\n";
}
}
$OUT .= " }\n";
}
}
}
}

File diff suppressed because it is too large Load Diff

185
smeserver-thinclient.spec Normal file
View File

@ -0,0 +1,185 @@
# $Id: smeserver-thinclient.spec,v 1.9 2022/07/01 01:34:41 trevorb Exp $
# Authority: nocvs
# Name: Trevor Batley
Summary: Manage pxeboot of Thin Client workstations over network
%define name smeserver-thinclient
Name: %{name}
%define version 2.2
%define release 4
Version: %{version}
Release: %{release}%{?dist}
License: GPL
Group: Network
Source: %{name}-%{version}.tar.xz
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot
BuildArch: noarch
Requires: e-smith-base, smeserver-pxe
BuildRequires: e-smith-devtools >= 1.13.1-03
AutoReq: yes
%description
Manage diskless workstation/device booting over network.
PXE capable NIC and BIOS required on target machine
Basic PXE booting is enabled via smeserver-pxe. This contrib manages what the pxe clients use.
A tftp server is reqired. Can be on sme server (eg smeserver-tftp) or elsewhere in network
Requires sme server to be acting as the dhcp server
%prep
%setup -q -n %{name}-%{version}
%build
perl createlinks
%install
/bin/rm -rf $RPM_BUILD_ROOT
(cd root ; /usr/bin/find . -depth -print | /bin/cpio -dump $RPM_BUILD_ROOT)
/bin/rm -f %{name}-%{version}-filelist
/sbin/e-smith/genfilelist $RPM_BUILD_ROOT > %{name}-%{version}-filelist
%clean
rm -rf $RPM_BUILD_ROOT
%files -f %{name}-%{version}-filelist
%defattr(-,root,root)
%pre
%preun
%post
%postun
%changelog
* Sat Sep 07 2024 cvs2git.sh aka Brian Read <brianr@koozali.org> 2.2-4.sme
- Roll up patches and move to git repo [SME: 12338]
* Sat Sep 07 2024 BogusDateBot
- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday,
by assuming the date is correct and changing the weekday.
* Fri Jul 1 2022 Trevor Batley <trevor@batley.id.au> 2.2-3.sme
- consolidate patches etc. and replace tarball
- trigger update event on all save of workstation [SME 12085]
- move templates2expand and services2adjust into createlinks [SME 12086]
- move changelog in spec to end
* Tue May 10 2022 Trevor Batley <trevor@batley.id.au> 2.2-2.sme
- added missing migrate/00openRW fragment for thinslient DB [SME 11967]
* Thu Apr 28 2022 Trevor Batley <trevor@batley.id.au> 2.2-1.sme
- added /etc/dhcpd.thinclient include file for pxe clients
- remove core pxe components and add requirement for smeserver-pxe [SME: 11960]
- add options for different architectures [SME: 10821]
- change back to using / updating tftp [SME: 11939]
- fixed some dodgy db parameter processing
- rollup patches (archive.patch, tftpd.conf)
* Thu Oct 29 2020 Brian Read <brianr@bjsystems.co.uk> 2.1-4.sme
- Initial import to SME10 tree [SME: 11073]
* Mon Apr 25 2016 Trevor Batley <trevorbatley@users.sourceforge.net> 2.1-3
- Allow upload and extract of 'Distribution' archives for loading into /tftpboot [9481]
- Always set tftproot as /tftpboot as default [9441]
* Mon Apr 4 2016 Trevor Batley <trevorbatley@users.sourceforge.net> 2.1-2
- Run tftpd-conf when tftp server is set to Self and tftpd exists [9417]
- Also remove the services2adjust restart of tftpd, which was trying to do the same
* Tue Nov 12 2013 Daniel Berteaud <daniel@firewall-services.com> 2.1-1
- Rebuild for SME9
* Sun Apr 29 2007 Shad L. Lords <slords@mail.com>
- Clean up spec so package can be built by koji/plague
* Thu Dec 07 2006 Shad L. Lords <slords@mail.com>
- Update to new release naming. No functional changes.
- Make Packager generic
* Mon Jun 12 2006 Trevor Batley <trevor@batley.id.au> - 2.0-5
- Cater for missing tftpd parameter in configuration database
- Set dhcpd Bootp parameter in configuration database
* Tue Apr 4 2006 Trevor Batley <trevor@batley.id.au> - 2.0-4
- Got rid of superfluous 3 level version number and reverted to 2 levels
* Sat Apr 1 2006 Trevor Batley <trevor@batley.id.au> - 2.0.0-3
- Tidied up some of the references to pxe parameters in panel
- Changed panel to look for the tftpd{directory} parameter for populating tftproot
* Sun Mar 26 2006 Trevor Batley <trevor@batley.id.au> - 2.0.0-2
- Change update to tftp key in config database to tftpd to align with tftpd package from Daniel Warnet
* Sat Feb 11 2006 Trevor Batley <trevor@batley.id.au> - 2.0.0-1
- Amend to work with smeserver v7rc2 +>
+ rename pxeclients database thinclient
+ panel - remove hardcoded thinclient & hosts database paths
+ panel - remove references to dhcpd{DenyBootp} database property
+ templates - remove /etc/dhcpd.conf/25DenyBootp fragment
+ events - use services2update for conf-thinclient
+ actions - remove conf-thinclient script
+ spec - remove all coding in %pre tag
+ createlinks - only do panel (remove all other c**p)
* Thu Nov 11 2004 Trevor Batley <trevor@batley.id.au> - 1.2.0-5
- Fix error when changing distribution and NOT regenerating /etc/dhcpd.config
- Added option to allow changing the default filename to be executed (per distribution)
* Sat Apr 17 2004 Trevor Batley <trevor@batley.id.au> - 1.2.0-4
- Fix error when adding new Workstation and 'Default Distribution' set as 'None'
* Wed Apr 14 2004 Trevor Batley <trevor@batley.id.au> - 1.2.0-3
- Fix stupid error with use of Self for tftp server (template for /etc/dhcpd.conf/48NextServer)
* Wed Apr 14 2004 Trevor Batley <trevor@batley.id.au> - 1.2.0-2
- Multiple validation changes
- Add log file capture and display for rpm & signal-event handling
- Display error messages on Workstation & Distribution panels
- Added tick/cross and coloured Operation Status report
* Thu Apr 1 2004 Trevor Batley <trevor@batley.id.au> - 1.2.0-1
- Add functionality into panel to add/remove distributions via rpm (file on local workstation)
* Wed Mar 24 2004 Trevor Batley <trevor@batley.id.au>
- Removed postun action of navigation-conf-hidden and replaced with correct action of navigation-conf
* Fri Mar 19 2004 Trevor Batley <trevor@batley.id.au>
- Formatting changes to sub-panels within thinclient server-manager panel and addition of cancel button to workstation settings
* Thu Mar 18 2004 Trevor Batley <trevor@batley.id.au>
- Removed post action of navigation-conf-hidden and replaced with correct action of navigation-conf
* Thu Mar 18 2004 Trevor Batley <trevor@batley.id.au>
- Removed tftp components from this rpm and put them in smeserver-tftpd
- added requirement to use smeserver-tftpd and removed requirement for generic tftp
* Mon Mar 15 2004 Trevor Batley <trevor@batley.id.au>
- Fixed bug in mac address checking
- included call to navigation-conf-hidden in post install event
* Fri Mar 12 2004 Trevor Batley <trevor@batley.id.au>
- Revamped rpm build spec file and associated pre & post scripts etc.
* Sat Mar 6 2004 Trevor Batley <trevor@batley.id.au>
- Updated thinclient server-manager panel using suggestions from Darrell May & Gordon Rowell
* Wed Feb 4 2004 Trevor Batley <trevor@batley.id.au>
- Initial working (sort of) pxeboot server-manager panel
* Wed Feb 4 2004 Trevor Batley <trevor@batley.id.au>
- Add initial pxeboot server-manager panel
* Tue Feb 3 2004 Trevor Batley <trevor@batley.id.au>
- Fix problem with quoting around default tftpboot directory
* Sat Jan 31 2004 Trevor Batley <trevor@batley.id.au>
- Fix template problem with
* Sat Jan 24 2004 Trevor Batley <trevor@batley.id.au>
- Initial release
* Sat Jan 24 2004 Trevor Batley <trevor@batley.id.au>
- Initial release