review packaging for f37 (1/n)
authorThierry Parmentelat <thierry.parmentelat@inria.fr>
Wed, 23 Nov 2022 14:27:40 +0000 (15:27 +0100)
committerThierry Parmentelat <thierry.parmentelat@inria.fr>
Fri, 25 Nov 2022 17:24:09 +0000 (18:24 +0100)
use pip install rather than python setup.py install
in the mix the 2 commands (plcsh and Server.py) end up in /usr/share/plc_api/bin/
use setuptools rather than distutils

Makefile
plcapi.spec
setup.py

index 0c546e3..b138e05 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -24,10 +24,14 @@ all:
 install: install-python install-phpxmlrpc
 
 install-python:
-       python3 setup.py install \
-           --install-purelib=$(DESTDIR)/$(datadir)/plc_api \
-           --install-scripts=$(DESTDIR)/$(datadir)/plc_api \
-           --install-data=$(DESTDIR)/$(datadir)/plc_api
+       pip install --target $(DESTDIR)/$(datadir)/plc_api .
+       # it's important that plcsh sits in /usr/share/plc_api
+       # and not under bin/ so that python can find the PLC/ modules
+       mv $(DESTDIR)/$(datadir)/plc_api/bin/plcsh $(DESTDIR)/$(datadir)/plc_api
+       # python3 setup.py install \
+       #     --install-purelib=$(DESTDIR)/$(datadir)/plc_api \
+       #     --install-scripts=$(DESTDIR)/$(datadir)/plc_api \
+       #     --install-data=$(DESTDIR)/$(datadir)/plc_api
 
 # phpxmlrpc is a git subtree; we just ship all its contents
 # under /usr/share/plc_api/php/phpxmlrpc
index 426901f..84fc9d3 100644 (file)
@@ -19,13 +19,13 @@ Distribution: PlanetLab %{plrelease}
 URL: %{SCMURL}
 
 Provides: PLCAPI
-Obsoletes: PLCAPI
+Obsoletes: PLCAPI
 
 # requirement to mod_python or mod_wsgi: deferred to myplc
 Requires: httpd mod_ssl
 # f29 does not come with an rpm for that; use pip instead
 # Requires: Django
-Requires: postgresql >= 8.2, postgresql-server >= 8.2
+Requires: postgresql, postgresql-server
 # We use set everywhere
 Requires: python3
 Requires: python3-postgresql
@@ -39,7 +39,7 @@ Requires: python3-lxml
 Requires: memcached python3-memcached
 
 ####################
-# obsolete
+# phpxmlrpc
 ####################
 # standard xmlrpc.so that ships with PHP does not marshal NULL
 # prior to May 2017 we used to ship our own brew of xmlrpc but
@@ -97,12 +97,6 @@ mkdir -p ${RPM_BUILD_ROOT}/etc/planetlab/db-config.d
 cp db-config.d/* ${RPM_BUILD_ROOT}/etc/planetlab/db-config.d
 chmod 444 ${RPM_BUILD_ROOT}/etc/planetlab/db-config.d/*
 
-## Thierry - June 2013 - omfv6 does not require xmpp pubsub nodes management any more
-## Install omf_slicemgr.py
-#install -D -m 755 omf/omf_slicemgr.py $RPM_BUILD_ROOT/usr/bin/omf_slicemgr.py
-#install -D -m 755 omf/reset_xmpp_pubsub_nodes.py $RPM_BUILD_ROOT/usr/bin/reset_xmpp_pubsub_nodes.py
-#mkdir -p $RPM_BUILD_ROOT/var/log/omf
-
 # Create log file for plcapi
 mkdir -p $RPM_BUILD_ROOT/var/log
 touch $RPM_BUILD_ROOT/var/log/plcapi.log
index a530ad1..e2a5931 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -6,19 +6,28 @@
 # Copyright (C) 2006 The Trustees of Princeton University
 #
 
-from distutils.core import setup
+from setuptools import setup
 from glob import glob
 
-setup(packages = ['PLC', 'PLC/Methods', 'PLC/Methods/system', 'PLC/Accessors'],
-      scripts = ['plcsh', 'Server.py'],
-      data_files = [
-        ('', ['planetlab5.sql']),
+setup(
+    name="plc_api",
+    packages = ['PLC', 'PLC/Methods', 'PLC/Methods/system', 'PLC/Accessors'],
+    scripts = ['plcsh', 'Server.py'],
+    data_files = [
+        ('',
+            ['planetlab5.sql']),
         # package for mod_python and mod_wsgi, defer choice to myplc
-        ('apache', ['apache/ModPython.py', 'apache/__init__.py', 'apache/plc.wsgi']),
-        ('php', ['php/plc_api.php']),
+        ('apache',
+            ['apache/ModPython.py',
+             'apache/__init__.py',
+             'apache/plc.wsgi']),
+        ('php',
+            ['php/plc_api.php']),
         ('migrations',
-         ['migrations/README.txt',
-          'migrations/extract-views.py']
-         + glob('migrations/[0-9][0-9][0-9]*')),
-        ('extensions', ['extensions/README.txt']),
-        ])
+            ['migrations/README.txt',
+             'migrations/extract-views.py']
+             + glob('migrations/[0-9][0-9][0-9]*')),
+        ('extensions',
+            ['extensions/README.txt']),
+    ]
+)