Re: [opensuse] new ups device, what location
Patrick Shanahan wrote:
* David C. Rankin
[06-26-08 13:00]: I have been following the thread and it has finally got my ups working, but I can't talk to it. The ups starts:
Jun 26 11:37:55 nirvana sudo: david : TTY=pts/4 ; PWD=/home/david ; USER=root ; COMMAND=/usr/lib/ups/driver/upsdrvctl -u root start nirvana_UPS Jun 26 11:37:55 nirvana usbhid-ups[27700]: Startup successful
I try and check it and get:
[11:49 nirvana/home/david] # upsc nirvana_UPS@nirvana Error: Connection failure: Connection refused
fwiw: I have the same situation and get the following in my logs every am: Jun 25 02:26:19 wahoo kernel: usb 2-2: usbfs: USBDEVFS_CONTROL failed cmd newhidups rqt 161 rq 1 len 8 ret -110
Hmm, Patrick: I thought I saw you were able to get output? <snip> 01:05 wahoo:../eol.svn/trunk # upsc myups@localhost battery.charge: 100 battery.charge.low: 10 battery.charge.warning: 50 battery.date: 2001/09/25 battery.mfr.date: 2008/02/19 battery.runtime: 510 battery.runtime.low: 120 <snip> I can't even do that: [18:05 nirvana/home/david] # upsc nirvana_UPS@localhost Error: Connection failure: Connection refused Googling, there are prior opensuse posts about opensuse having messed up the init script and other nut scripts. Based on my experience, that may never have been fixed. I will continue to look. -- David C. Rankin, J.D., P.E. Rankin Law Firm, PLLC 510 Ochiltree Street Nacogdoches, Texas 75961 Telephone: (936) 715-9333 Facsimile: (936) 715-9339 www.rankinlawfirm.com -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
* David C. Rankin
I thought I saw you were able to get output?
<snip>
01:05 wahoo:../eol.svn/trunk # upsc myups@localhost battery.charge: 100 battery.charge.low: 10 battery.charge.warning: 50 battery.date: 2001/09/25 battery.mfr.date: 2008/02/19 battery.runtime: 510 battery.runtime.low: 120
<snip>
I can't even do that:
21:36 wahoo:~ # upsc myups@localhost battery.charge: 100 battery.charge.low: 10 battery.charge.warning: 50 battery.date: 2001/09/25 battery.mfr.date: 2008/02/19 battery.runtime: 534 battery.runtime.low: 120 battery.type: PbAc battery.voltage: 13.7 battery.voltage.nominal: 12.0 driver.name: newhidups driver.parameter.port: auto driver.version: 2.0.4 driver.version.data: APC/CyberPower HID 0.9 driver.version.internal: 0.28 input.transfer.high: 139 input.transfer.low: 92 input.voltage: 112.0 input.voltage.nominal: 120 ups.beeper.status: enabled ups.delay.shutdown: -1 ups.firmware: 841.I2 .D ups.firmware.aux: I2 ups.load: 46 ups.mfr: American Power Conversion ups.mfr.date: 2008/02/19 ups.model: Back-UPS ES 750 ups.serial: 3B0808X06916 ups.status: OL ups.test.result: No test initiated
[18:05 nirvana/home/david] # upsc nirvana_UPS@localhost Error: Connection failure: Connection refused
Googling, there are prior opensuse posts about opensuse having messed up the init script and other nut scripts. Based on my experience, that may never have been fixed. I will continue to look.
21:41 wahoo:~ # upscmd -l myups@localhost Instant commands supported on UPS [myups@localhost]: test.panel.start - Start testing the UPS panel test.panel.stop - Stop a UPS panel test load.off - Turn off the load immediately shutdown.return - Turn off the load and return when power is back shutdown.stop - Stop a shutdown in progress beeper.on - Enable the UPS beeper beeper.off - Disable the UPS beeper but I cannot send a command and I get the following: 21:42 wahoo:~ # upscmd myups@localhost -u root beeper.on Username (root): Password: Error: old command names are not supported The web (cgi) interface shows stats and accepts commands, but will not act on the commands. I cannot start a test. -- Patrick Shanahan Plainfield, Indiana, USA HOG # US1244711 http://wahoo.no-ip.org Photo Album: http://wahoo.no-ip.org/gallery2 Registered Linux User #207535 @ http://counter.li.org -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
Patrick Shanahan wrote:
21:41 wahoo:~ # upscmd -l myups@localhost Instant commands supported on UPS [myups@localhost]:
test.panel.start - Start testing the UPS panel test.panel.stop - Stop a UPS panel test load.off - Turn off the load immediately shutdown.return - Turn off the load and return when power is back shutdown.stop - Stop a shutdown in progress beeper.on - Enable the UPS beeper beeper.off - Disable the UPS beeper
but I cannot send a command and I get the following:
21:42 wahoo:~ # upscmd myups@localhost -u root beeper.on Username (root): Password: Error: old command names are not supported
The web (cgi) interface shows stats and accepts commands, but will not act on the commands. I cannot start a test.
That's encouraging! I think I have to drop back to basics. Apparently I have a port problem for some reason or it didn't like the fact that I renamed [myups]. Neither should be a problem, but they are. Thanks. -- David C. Rankin, J.D., P.E. Rankin Law Firm, PLLC 510 Ochiltree Street Nacogdoches, Texas 75961 Telephone: (936) 715-9333 Facsimile: (936) 715-9339 www.rankinlawfirm.com -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
Patrick Shanahan wrote:
21:41 wahoo:~ # upscmd -l myups@localhost Instant commands supported on UPS [myups@localhost]:
test.panel.start - Start testing the UPS panel test.panel.stop - Stop a UPS panel test load.off - Turn off the load immediately shutdown.return - Turn off the load and return when power is back shutdown.stop - Stop a shutdown in progress beeper.on - Enable the UPS beeper beeper.off - Disable the UPS beeper
but I cannot send a command and I get the following:
21:42 wahoo:~ # upscmd myups@localhost -u root beeper.on Username (root): Password: Error: old command names are not supported
The web (cgi) interface shows stats and accepts commands, but will not act on the commands. I cannot start a test.
That's encouraging! I think I have to drop back to basics. Apparently I have a port problem for some reason or it didn't like the fact that I renamed [myups]. Neither should be a problem, but they are. Thanks. Mine?: http://www.3111skyline.com/download/screenshots/opensuse/nutgui_connection_e... -- David C. Rankin, J.D., P.E. Rankin Law Firm, PLLC 510 Ochiltree Street Nacogdoches, Texas 75961 Telephone: (936) 715-9333 Facsimile: (936) 715-9339 www.rankinlawfirm.com -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
* David C. Rankin
Mine?:
http://www.3111skyline.com/download/screenshots/opensuse/nutgui_connection_e...
http://wahoo.no-ip.org/~pat/nutgui_display.jpg :^) gud luk, -- Patrick Shanahan Plainfield, Indiana, USA HOG # US1244711 http://wahoo.no-ip.org Photo Album: http://wahoo.no-ip.org/gallery2 Registered Linux User #207535 @ http://counter.li.org -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
What happened to /dev/hiddev0? The damn thing was their earlier, but is gone now. Patrick, somebody, could you post an ls -al /dev/hiddev0 so I know what permissions I need to recreate it with mknod. Thanks! -- David C. Rankin, J.D., P.E. Rankin Law Firm, PLLC 510 Ochiltree Street Nacogdoches, Texas 75961 Telephone: (936) 715-9333 Facsimile: (936) 715-9339 www.rankinlawfirm.com -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
David C. Rankin wrote:
What happened to /dev/hiddev0?
The damn thing was their earlier, but is gone now. Patrick, somebody, could you post an ls -al /dev/hiddev0 so I know what permissions I need to recreate it with mknod. Thanks!
Nevermind, I found it: mknod /dev/hiddev0 c 180 96 -- David C. Rankin, J.D., P.E. Rankin Law Firm, PLLC 510 Ochiltree Street Nacogdoches, Texas 75961 Telephone: (936) 715-9333 Facsimile: (936) 715-9339 www.rankinlawfirm.com -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
* David C. Rankin
David C. Rankin wrote:
What happened to /dev/hiddev0?
The damn thing was their earlier, but is gone now. Patrick, somebody, could you post an ls -al /dev/hiddev0 so I know what permissions I need to recreate it with mknod. Thanks!
Nevermind, I found it:
mknod /dev/hiddev0 c 180 96
that's good, cause it don't happen here. No setch monster :^( Should I have it? -- Patrick Shanahan Plainfield, Indiana, USA HOG # US1244711 http://wahoo.no-ip.org Photo Album: http://wahoo.no-ip.org/gallery2 Registered Linux User #207535 @ http://counter.li.org -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
Patrick Shanahan wrote:
* David C. Rankin
[06-26-08 23:18]: David C. Rankin wrote:
What happened to /dev/hiddev0?
The damn thing was their earlier, but is gone now. Patrick, somebody, could you post an ls -al /dev/hiddev0 so I know what permissions I need to recreate it with mknod. Thanks!
Nevermind, I found it:
mknod /dev/hiddev0 c 180 96
that's good, cause it don't happen here. No setch monster :^(
Should I have it?
Patrick, If you don't have it, you might want to create it and try again. Without it, it would make sense that you can't talk to it.... Recall usr/share/doc/packages/nut/README.SUSE One other thing that is bugging me is that upsd won't start under user upsd. It is a good user: upsd:x:113:2:UPS daemon:/sbin:/bin/false It owns the ups directory: drwx------ 2 upsd root 4096 2008-06-26 22:40 ups If you try and start it as upsd, it fails claiming no HID UPS: [22:46 nirvana/var/lib] # /usr/lib/ups/driver/upsdrvctl -D -u upsd start nirvana_ups Network UPS Tools - UPS driver controller 2.2.0- Starting UPS: nirvana_ups Network UPS Tools: 0.28 USB communication driver 0.28 - core 0.30 (2.2.0-) No matching HID UPS found Driver failed to start (exit status=1) If you give it the /var/lib/ups dir to chroot into, it also fails: [22:43 nirvana/var/lib] # /usr/lib/ups/driver/upsdrvctl -D -u upsd -r /var/lib/ups start nirvana_ups Network UPS Tools - UPS driver controller 2.2.0- Starting UPS: nirvana_ups Network UPS Tools: 0.28 USB communication driver 0.28 - core 0.30 (2.2.0-) Can't chdir to /var/lib/ups: No such file or directory Driver failed to start (exit status=1) ??? it owns the dir, why cant it chdir into it? As root it starts just fine: [22:48 nirvana/var/lib] # /usr/lib/ups/driver/upsdrvctl -D -u root start nirvana_ups Network UPS Tools - UPS driver controller 2.2.0- Starting UPS: nirvana_ups Network UPS Tools: 0.28 USB communication driver 0.28 - core 0.30 (2.2.0-) Detected a UPS: CPS/UPS CP1000AVRLCD Using subdriver: APC/CyberPower HID 0.9 I'm going to try another kernel... I think Jan may have dorked ups in this one....Just kidding Jan. -- David C. Rankin, J.D., P.E. Rankin Law Firm, PLLC 510 Ochiltree Street Nacogdoches, Texas 75961 Telephone: (936) 715-9333 Facsimile: (936) 715-9339 www.rankinlawfirm.com -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
* David C. Rankin
Patrick Shanahan wrote:
* David C. Rankin
[06-26-08 23:18]: Nevermind, I found it:
mknod /dev/hiddev0 c 180 96
that's good, cause it don't happen here. No setch monster :^(
Should I have it?
If you don't have it, you might want to create it and try again. Without it, it would make sense that you can't talk to it.... Recall usr/share/doc/packages/nut/README.SUSE
I see that, but "man newhidups" and /usr/share/doc/packages/nut/INSTALL both indicate that "port = auto" will suffice for a "single" usb ups unit.
One other thing that is bugging me is that upsd won't start under user upsd.
It is a good user:
upsd:x:113:2:UPS daemon:/sbin:/bin/false
It owns the ups directory:
drwx------ 2 upsd root 4096 2008-06-26 22:40 ups
If you try and start it as upsd, it fails claiming no HID UPS:
[22:46 nirvana/var/lib] # /usr/lib/ups/driver/upsdrvctl -D -u upsd start nirvana_ups Network UPS Tools - UPS driver controller 2.2.0- Starting UPS: nirvana_ups Network UPS Tools: 0.28 USB communication driver 0.28 - core 0.30 (2.2.0-)
No matching HID UPS found Driver failed to start (exit status=1)
....
Detected a UPS: CPS/UPS CP1000AVRLCD Using subdriver: APC/CyberPower HID 0.9
don't know here, you have a different unit. I had a CyberPower under SuSE 9.0 working with a self compiled driver from CyberPower, but I never got it working under openSUSE 10.1. The unit would provide power across short interruptions, but would not power down the computer. It would just run dead and stop. BUT this was satisfactory until the storms this year, the interruptions were of very short duration, usually less than two minutes. -- Patrick Shanahan Plainfield, Indiana, USA HOG # US1244711 http://wahoo.no-ip.org Photo Album: http://wahoo.no-ip.org/gallery2 Registered Linux User #207535 @ http://counter.li.org -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
Patrick Shanahan wrote:
don't know here, you have a different unit. I had a CyberPower under SuSE 9.0 working with a self compiled driver from CyberPower, but I never got it working under openSUSE 10.1. The unit would provide power across short interruptions, but would not power down the computer. It would just run dead and stop. BUT this was satisfactory until the storms this year, the interruptions were of very short duration, usually less than two minutes.
Wohoo: Breakthrough! "User *upsd* must be in group *uucp*". upsd starts fine with the "rcupsd" init script after that. You can try with port=auto, but if you have any problems use mknod to create /dev/hiddev0: cd /dev mknod /dev/hiddev0 c 180 96 chown :uucp hiddev0 chmod 0664 hiddev0 Give it a shot! -- David C. Rankin, J.D., P.E. Rankin Law Firm, PLLC 510 Ochiltree Street Nacogdoches, Texas 75961 Telephone: (936) 715-9333 Facsimile: (936) 715-9339 www.rankinlawfirm.com -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
* David C. Rankin
Breakthrough! "User *upsd* must be in group *uucp*". upsd starts fine with the "rcupsd" init script after that. You can try with port=auto, but if you have any problems use mknod to create /dev/hiddev0:
cd /dev mknod /dev/hiddev0 c 180 96 chown :uucp hiddev0 chmod 0664 hiddev0
Give it a shot!
21:29 wahoo:~ # ll /dev/hiddev0 crw-rw-r-- 1 root uucp 180, 96 Jun 27 21:28 /dev/hiddev0 21:29 wahoo:~ # groups pat pat : users audio cdrom privoxy public uucp video 21:29 wahoo:~ # upscmd myups@localhost test.panel.start Username (root): Password: Instant command failed: Access denied but don't understand the need to join uucp when issuing the cmd as root ??? -- Patrick Shanahan Plainfield, Indiana, USA HOG # US1244711 http://wahoo.no-ip.org Photo Album: http://wahoo.no-ip.org/gallery2 Registered Linux User #207535 @ http://counter.li.org -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
Patrick Shanahan wrote:
* David C. Rankin
[06-27-08 21:04]: Breakthrough! "User *upsd* must be in group *uucp*". upsd starts fine with the "rcupsd" init script after that. You can try with port=auto, but if you have any problems use mknod to create /dev/hiddev0:
cd /dev mknod /dev/hiddev0 c 180 96 chown :uucp hiddev0 chmod 0664 hiddev0
Give it a shot!
21:29 wahoo:~ # ll /dev/hiddev0 crw-rw-r-- 1 root uucp 180, 96 Jun 27 21:28 /dev/hiddev0
21:29 wahoo:~ # groups pat pat : users audio cdrom privoxy public uucp video
21:29 wahoo:~ # upscmd myups@localhost test.panel.start Username (root): Password: Instant command failed: Access denied
but don't understand the need to join uucp when issuing the cmd as root ???
My "guess" is that internal to the nut software, it wants to talk as part of
group uucp, thus the group designation on /dev/hiddev0. I think I have
encountered additional hard coded constraints such as changing the name of
myups to nirvana_ups. The cgi scripts still look for myups despite the setup of
ups.conf and upsmon.conf. I'll look into that later:
[20:52 nirvana/srv/www/htdocs] # upscmd -l myups
Instant commands supported on UPS [myups]:
load.off - Turn off the load immediately
load.on - Turn on the load immediately
shutdown.stop - Stop a shutdown in progress
beeper.on - Enable the UPS beeper
beeper.off - Temporarily mute the UPS beeper
Don't forget to set the .htaccess file for /cgi-bin/nut. (see
/etc/ups/upsset.conf) You will also have to modify
/etc/apache2/default-server.conf and set
* David C. Rankin
[20:52 nirvana/srv/www/htdocs] # upscmd -l myups Instant commands supported on UPS [myups]:
load.off - Turn off the load immediately load.on - Turn on the load immediately shutdown.stop - Stop a shutdown in progress beeper.on - Enable the UPS beeper beeper.off - Temporarily mute the UPS beeper
but can you send it a command? try: upscmd myups@localhost beeper.of and see
Don't forget to set the .htaccess file for /cgi-bin/nut. (see /etc/ups/upsset.conf) You will also have to modify /etc/apache2/default-server.conf and set
AllowOverride All
AllowOverride Limit .htaccess <Files upsset.cgi> deny from all allow from localhost </Files>
to be able to use the .htaccess file.
Additionally, you will also have to create the [admin] section in upsd.users . You don't have to use ["admin"] here, I confirmed [myname] works just fine.
That what got me 100% up and working.
:^) -- Patrick Shanahan Plainfield, Indiana, USA HOG # US1244711 http://wahoo.no-ip.org Photo Album: http://wahoo.no-ip.org/gallery2 Registered Linux User #207535 @ http://counter.li.org -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
Patrick Shanahan wrote:
but can you send it a command?
try: upscmd myups@localhost beeper.of
Yep, Even using the web page: Sending command: beeper.off Response: OK I think using the "rcupsd" init script is the key and that takes adding upsd to uucp group. Keep plugging away. -- David C. Rankin, J.D., P.E. Rankin Law Firm, PLLC 510 Ochiltree Street Nacogdoches, Texas 75961 Telephone: (936) 715-9333 Facsimile: (936) 715-9339 www.rankinlawfirm.com -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
* David C. Rankin
Sending command: beeper.off Response: OK
I think using the "rcupsd" init script is the key and that takes adding upsd to uucp group. Keep plugging away.
well, I had that option before adding the /dev/hiddev0, but cannot get it to accept commands :^( 15:40 wahoo:~ # rcupsd status Checking for service NUT UPS server running Checking for service NUT UPS monitor running -- Patrick Shanahan Plainfield, Indiana, USA HOG # US1244711 http://wahoo.no-ip.org Photo Album: http://wahoo.no-ip.org/gallery2 Registered Linux User #207535 @ http://counter.li.org -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
Patrick Shanahan wrote:
* David C. Rankin
[06-28-08 01:32]: Sending command: beeper.off Response: OK
I think using the "rcupsd" init script is the key and that takes adding upsd to uucp group. Keep plugging away.
well, I had that option before adding the /dev/hiddev0, but cannot get it to accept commands :^(
15:40 wahoo:~ # rcupsd status Checking for service NUT UPS server running Checking for service NUT UPS monitor running
Patrick, I found that I couldn't start nut without user upsd as a member of group uucp as we discussed last night. Started as root from the command line, I couldn't communicate with the ups (with or without) /dev/hiddev0. Once I edited /etc/group and created /dev/hiddev0, it started and I could communicate with it without any problem at all. Almost like someone had written the program to do just that. Here are all the details of the remaining config for each of the files in /etc/ups (minus the .html files): /etc/ups/hosts.conf MONITOR nirvana_ups@localhost "Local UPS" /etc/ups/ups.conf [nirvana_ups] driver = usbhid-ups explore vendor="CPS" desc = "Nirvana UPS - Cyberpower 1000" port = /dev/hiddev0 /etc/ups/upsd.conf ACL all 0.0.0.0/0 ACL localhost 127.0.0.1/32 ACL nirvana 127.0.0.2/32 ACL rbpllc 66.76.63.60/32 ACCEPT localhost REJECT all /etc/ups/upsd.users [upsmaster] password = -------------- allowfrom = localhost upsmon master [upsslave] password = --------------- allowfrom = localhost upsmon slave [david] password = -------------- allowfrom = localhost nirvana skyline rbpllc actions = SET instcmds = ALL /etc/ups/upsmon.conf MONITOR nirvana_ups@localhost 1 upsmaster <notmyrealpassword> master MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -h +0" NOTIFYCMD /usr/lib/powersave/powersave-notify POLLFREQ 5 POLLFREQALERT 5 HOSTSYNC 15 DEADTIME 15 POWERDOWNFLAG /etc/killpower NOTIFYFLAG ONLINE SYSLOG NOTIFYFLAG COMMOK SYSLOG NOTIFYFLAG SHUTDOWN SYSLOG NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC NOTIFYFLAG FSD SYSLOG+WALL+EXEC NOTIFYFLAG NOCOMM SYSLOG+WALL+EXEC NOTIFYFLAG COMMBAD SYSLOG+WALL+EXEC RBWARNTIME 43200 NOCOMMWARNTIME 300 FINALDELAY 5 /etc/ups/upssched.conf CMDSCRIPT /usr/local/ups/bin/upssched-cmd /etc/ups/upsset.conf I_HAVE_SECURED_MY_CGI_DIRECTORY Here are my cheater scripts to dump the config: [23:10 nirvana/home/david/tmp] # cat getupsconfig #!/bin/bash for i in $(sudo ls /etc/ups); do echo -e "/etc/ups/$i\n" >> /home/david/tmp/upsconfig /home/david/linux/scripts/nocomment "/etc/ups/$i" >> /home/david/tmp/upsconfig done exit 0 [23:25 nirvana/home/david/tmp] # cat /home/david/linux/scripts/nocomment #!/bin/bash if [[ -z "$1" ]]; then echo -e "\n\n\tUsage: ./nocomment <filename>" echo -e "\n\n\tWill parse the text file and remove all blank lines and all lines beginning \ \n\twith an '#' or ';'. It is useful for looking at configuration files.\n" exit 1 fi echo "" sed -e '/^#/d' -e '/^;/d' -e '/^$/d' <$1 echo "" exit 0 Good luck. Once 'all' of the pieces of the puzzle are in place, I'll wager yours will work like a champ. -- David C. Rankin, J.D., P.E. Rankin Law Firm, PLLC 510 Ochiltree Street Nacogdoches, Texas 75961 Telephone: (936) 715-9333 Facsimile: (936) 715-9339 www.rankinlawfirm.com -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org
participants (2)
-
David C. Rankin
-
Patrick Shanahan