Subject: RPM Pre Script fail on Upgrade (Nightly)
From: Schlomo Schapiro <[email-masked]>
To: <[email-masked]>
Date: Mon, 9 Feb 2015 12:49:16 +0100

Package: x2goserver
Version: 4.1.0.0-0.0x2go1.0.git20150201.1236.heuler.el6

RPM Upgrades of existing installations fail because of a broken %pre
script in the x2goserver-common RPM:

Resolving Dependencies
--> Running transaction check
---> Package x2goserver-common.x86_64
0:4.1.0.0-0.0x2go1.0.git20150113.1214.heuler.el6 will be updated
---> Package x2goserver-common.x86_64
0:4.1.0.0-0.0x2go1.0.git20150201.1236.heuler.el6 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================
 Package                      Arch             
Version                                                   
Repository                    Size
==============================================================================================================================================
Updating:
 x2goserver-common            x86_64           
4.1.0.0-0.0x2go1.0.git20150201.1236.heuler.el6            
is24-x2go-nightly            7.2 k

Transaction Summary
==============================================================================================================================================
Upgrade       1 Package(s)

Total download size: 7.2 k
Is this ok [y/N]: y
Downloading Packages:
x2goserver-common-4.1.0.0-0.0x2go1.0.git20150201.1236.heuler.el6.x86_64.rpm                                           
| 7.2 kB     00:00    
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Error in PREIN scriptlet in rpm package
x2goserver-common-4.1.0.0-0.0x2go1.0.git20150201.1236.heuler.el6.x86_64
groupadd: group 'x2gouser' already exists
useradd: user 'x2gouser' already exists
error:
%pre(x2goserver-common-4.1.0.0-0.0x2go1.0.git20150201.1236.heuler.el6.x86_64)
scriptlet failed, exit status 9
error:   install: %pre scriptlet failed (2), skipping
x2goserver-common-4.1.0.0-0.0x2go1.0.git20150201.1236.heuler.el6
Running post transaction command: report-yum-to-graphite.sh
x2goserver-common-4.1.0.0-0.0x2go1.0.git20150113.1214.heuler.el6.x86_64
was supposed to be removed but is not!
  Verifying  :
x2goserver-common-4.1.0.0-0.0x2go1.0.git20150113.1214.heuler.el6.x86_64                                                   
1/2
  Verifying  :
x2goserver-common-4.1.0.0-0.0x2go1.0.git20150201.1236.heuler.el6.x86_64                                                   
2/2

Failed:
  x2goserver-common.x86_64
0:4.1.0.0-0.0x2go1.0.git20150113.1214.heuler.el6                                                                  

  x2goserver-common.x86_64
0:4.1.0.0-0.0x2go1.0.git20150201.1236.heuler.el6                                                                  

Complete!

The bad script is this:

if getent group x2gouser 1>/dev/null; then
    groupadd -r x2gouser
fi
if getent passwd x2gouser >/dev/null; then
    useradd -r -g x2gouser -d /var/lib/x2go -s /sbin/nologin \
            -c "x2go" x2gouser
fi

It should have a ! in the if clause to only call groupadd / useradd if the group or user DO NOT EXIST!!

Don't you test upgrades???

Regards,
Schlomo

-- 
Schlomo Schapiro
Systemarchitekt
Open Source Evangelist

Immobilien Scout GmbH      
Andreasstraße 10    
10243 Berlin  
Fon +49 30 24 301-1229
Fax +49 30 24 301-1110
Mobile +49 170 753 72 60        
[email-masked]
https://plus.google.com/100684964212588500616/about

----------------------------------------------------------
Immobilien Scout GmbH - Ein Unternehmen der Scout24-Gruppe
Geschäftsführer: Gregory Ellis (CEO) und Christian Gisy (CFO)
Handelsregister: Amtsgericht Charlottenburg, HRB 69108
Sitz der Gesellschaft: Berlin
----------------------------------------------------------

http://www.immobilienscout24.de
Der Marktführer:
Die Nr. 1 rund um Immobilien