prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Ubuntu package
  We should build ubuntu packages for ralph (without much of scan plugins) to be able to install easily if you're reluctant to use docker.
  - all js and components integrated into the package
  - /etc/ralph for system configuration
  - only ubuntu supported
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `src/ralph/__main__.py`
  Content:
  ```
  1 #!/usr/bin/env python
  2 import os
  3 import sys
  4 
  5 
  6 def main(settings_module='ralph.settings'):
  7     os.environ.setdefault('DJANGO_SETTINGS_MODULE', settings_module)
  8 
  9     from django.core.management import execute_from_command_line
  10 
  11     execute_from_command_line(sys.argv)
  12 
  13 
  14 def dev():
  15     main('ralph.settings.dev')
  16 
  17 
  18 def test():
  19     main('ralph.settings.test')
  20 
  21 
  22 if __name__ == '__main__':
  23     main()
  24
  ```
  
  Path: `setup.py`
  Content:
  ```
  1 # -*- encoding: utf-8 -*-
  2 
  3 import os
  4 import sys
  5 from setuptools import setup, find_packages
  6 
  7 assert sys.version_info >= (3, 3), 'Python 3.3+ required.'
  8 
  9 
  10 def read(fname):
  11     return open(os.path.join(os.path.dirname(__file__), fname)).read()
  12 
  13 setup(
  14     name='ralph',
  15     version='3.0.0',  # TODO: import from ralph
  16     author='Grupa Allegro Sp. z o.o. and Contributors',
  17     author_email='pylabs@allegro.pl',
  18     description="Advanced Asset Management and DCIM system for data center and back office.",
  19     long_description='\n'.join([read('README.md'), read('CHANGES')]),
  20     url='http://ralph.allegrogroup.com/',
  21     keywords='',
  22     platforms=['any'],
  23     license='Apache Software License v2.0',
  24     packages=find_packages('src'),  # TODO: remove src intermediate directory
  25     include_package_data=True,
  26     package_dir={'': 'src'},
  27     zip_safe=False,  # because templates are loaded from file path
  28     entry_points={
  29         'console_scripts': [
  30             'ralph = ralph.__main__:main',
  31             'dev_ralph = ralph.__main__:dev',
  32             'test_ralph = ralph.__main__:test',
  33         ],
  34     },
  35     classifiers=[
  36         'Development Status :: 4 - Beta',
  37         'Framework :: Django',
  38         'Intended Audience :: System Administrators',
  39         'Intended Audience :: Information Technology',
  40         'License :: OSI Approved :: Apache Software License',
  41         'Natural Language :: English',
  42         'Operating System :: POSIX',
  43         'Operating System :: MacOS :: MacOS X',
  44         'Operating System :: Microsoft :: Windows :: Windows NT/2000',
  45         'Programming Language :: Python',
  46         'Programming Language :: Python :: 3',
  47         'Programming Language :: Python :: 3.4',
  48         'Topic :: Internet :: WWW/HTTP',
  49     ]
  50 )
  51
  ```
  
  Path: `src/ralph/settings/prod.py`
  Content:
  ```
  1 from ralph.settings import *  # noqa
  2 
  3 STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'  # noqa
  4 STATIC_ROOT = os.path.join(BASE_DIR, 'var', 'static')
  5 
  6 LDAP_SERVER_OBJECT_USER_CLASS = 'user'  # possible values: "user, person
  7
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/setup.py b/setup.py
  --- a/setup.py
  +++ b/setup.py
  @@ -12,7 +12,7 @@
   
   setup(
       name='ralph',
  -    version='3.0.0',  # TODO: import from ralph
  +    version=read('./VERSION').strip(),
       author='Grupa Allegro Sp. z o.o. and Contributors',
       author_email='pylabs@allegro.pl',
       description="Advanced Asset Management and DCIM system for data center and back office.",
  @@ -21,13 +21,13 @@
       keywords='',
       platforms=['any'],
       license='Apache Software License v2.0',
  -    packages=find_packages('src'),  # TODO: remove src intermediate directory
  +    packages=find_packages('src'),
       include_package_data=True,
       package_dir={'': 'src'},
       zip_safe=False,  # because templates are loaded from file path
       entry_points={
           'console_scripts': [
  -            'ralph = ralph.__main__:main',
  +            'ralph = ralph.__main__:prod',
               'dev_ralph = ralph.__main__:dev',
               'test_ralph = ralph.__main__:test',
           ],
  diff --git a/src/ralph/__main__.py b/src/ralph/__main__.py
  --- a/src/ralph/__main__.py
  +++ b/src/ralph/__main__.py
  @@ -19,5 +19,9 @@
       main('ralph.settings.test')
   
   
  +def prod():
  +    main('ralph.settings.prod')
  +
  +
   if __name__ == '__main__':
  -    main()
  +    main('ralph.settings.prod')
  diff --git a/src/ralph/settings/prod.py b/src/ralph/settings/prod.py
  --- a/src/ralph/settings/prod.py
  +++ b/src/ralph/settings/prod.py
  @@ -4,3 +4,7 @@
   STATIC_ROOT = os.path.join(BASE_DIR, 'var', 'static')
   
   LDAP_SERVER_OBJECT_USER_CLASS = 'user'  # possible values: "user, person
  +
  +# FIXME: when going for full production, change it to False
  +
  +DEBUG = True
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -12,7 +12,7 @@\n \n setup(\n     name='ralph',\n-    version='3.0.0',  # TODO: import from ralph\n+    version=read('./VERSION').strip(),\n     author='Grupa Allegro Sp. z o.o. and Contributors',\n     author_email='pylabs@allegro.pl',\n     description=\"Advanced Asset Management and DCIM system for data center and back office.\",\n@@ -21,13 +21,13 @@\n     keywords='',\n     platforms=['any'],\n     license='Apache Software License v2.0',\n-    packages=find_packages('src'),  # TODO: remove src intermediate directory\n+    packages=find_packages('src'),\n     include_package_data=True,\n     package_dir={'': 'src'},\n     zip_safe=False,  # because templates are loaded from file path\n     entry_points={\n         'console_scripts': [\n-            'ralph = ralph.__main__:main',\n+            'ralph = ralph.__main__:prod',\n             'dev_ralph = ralph.__main__:dev',\n             'test_ralph = ralph.__main__:test',\n         ],\ndiff --git a/src/ralph/__main__.py b/src/ralph/__main__.py\n--- a/src/ralph/__main__.py\n+++ b/src/ralph/__main__.py\n@@ -19,5 +19,9 @@\n     main('ralph.settings.test')\n \n \n+def prod():\n+    main('ralph.settings.prod')\n+\n+\n if __name__ == '__main__':\n-    main()\n+    main('ralph.settings.prod')\ndiff --git a/src/ralph/settings/prod.py b/src/ralph/settings/prod.py\n--- a/src/ralph/settings/prod.py\n+++ b/src/ralph/settings/prod.py\n@@ -4,3 +4,7 @@\n STATIC_ROOT = os.path.join(BASE_DIR, 'var', 'static')\n \n LDAP_SERVER_OBJECT_USER_CLASS = 'user'  # possible values: \"user, person\n+\n+# FIXME: when going for full production, change it to False\n+\n+DEBUG = True\n", "issue": "Ubuntu package\nWe should build ubuntu packages for ralph (without much of scan plugins) to be able to install easily if you're reluctant to use docker.\n- all js and components integrated into the package\n- /etc/ralph for system configuration\n- only ubuntu supported\n\n", "before_files": [{"content": "#!/usr/bin/env python\nimport os\nimport sys\n\n\ndef main(settings_module='ralph.settings'):\n    os.environ.setdefault('DJANGO_SETTINGS_MODULE', settings_module)\n\n    from django.core.management import execute_from_command_line\n\n    execute_from_command_line(sys.argv)\n\n\ndef dev():\n    main('ralph.settings.dev')\n\n\ndef test():\n    main('ralph.settings.test')\n\n\nif __name__ == '__main__':\n    main()\n", "path": "src/ralph/__main__.py"}, {"content": "# -*- encoding: utf-8 -*-\n\nimport os\nimport sys\nfrom setuptools import setup, find_packages\n\nassert sys.version_info >= (3, 3), 'Python 3.3+ required.'\n\n\ndef read(fname):\n    return open(os.path.join(os.path.dirname(__file__), fname)).read()\n\nsetup(\n    name='ralph',\n    version='3.0.0',  # TODO: import from ralph\n    author='Grupa Allegro Sp. z o.o. and Contributors',\n    author_email='pylabs@allegro.pl',\n    description=\"Advanced Asset Management and DCIM system for data center and back office.\",\n    long_description='\\n'.join([read('README.md'), read('CHANGES')]),\n    url='http://ralph.allegrogroup.com/',\n    keywords='',\n    platforms=['any'],\n    license='Apache Software License v2.0',\n    packages=find_packages('src'),  # TODO: remove src intermediate directory\n    include_package_data=True,\n    package_dir={'': 'src'},\n    zip_safe=False,  # because templates are loaded from file path\n    entry_points={\n        'console_scripts': [\n            'ralph = ralph.__main__:main',\n            'dev_ralph = ralph.__main__:dev',\n            'test_ralph = ralph.__main__:test',\n        ],\n    },\n    classifiers=[\n        'Development Status :: 4 - Beta',\n        'Framework :: Django',\n        'Intended Audience :: System Administrators',\n        'Intended Audience :: Information Technology',\n        'License :: OSI Approved :: Apache Software License',\n        'Natural Language :: English',\n        'Operating System :: POSIX',\n        'Operating System :: MacOS :: MacOS X',\n        'Operating System :: Microsoft :: Windows :: Windows NT/2000',\n        'Programming Language :: Python',\n        'Programming Language :: Python :: 3',\n        'Programming Language :: Python :: 3.4',\n        'Topic :: Internet :: WWW/HTTP',\n    ]\n)\n", "path": "setup.py"}, {"content": "from ralph.settings import *  # noqa\n\nSTATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'  # noqa\nSTATIC_ROOT = os.path.join(BASE_DIR, 'var', 'static')\n\nLDAP_SERVER_OBJECT_USER_CLASS = 'user'  # possible values: \"user, person\n", "path": "src/ralph/settings/prod.py"}], "after_files": [{"content": "#!/usr/bin/env python\nimport os\nimport sys\n\n\ndef main(settings_module='ralph.settings'):\n    os.environ.setdefault('DJANGO_SETTINGS_MODULE', settings_module)\n\n    from django.core.management import execute_from_command_line\n\n    execute_from_command_line(sys.argv)\n\n\ndef dev():\n    main('ralph.settings.dev')\n\n\ndef test():\n    main('ralph.settings.test')\n\n\ndef prod():\n    main('ralph.settings.prod')\n\n\nif __name__ == '__main__':\n    main('ralph.settings.prod')\n", "path": "src/ralph/__main__.py"}, {"content": "# -*- encoding: utf-8 -*-\n\nimport os\nimport sys\nfrom setuptools import setup, find_packages\n\nassert sys.version_info >= (3, 3), 'Python 3.3+ required.'\n\n\ndef read(fname):\n    return open(os.path.join(os.path.dirname(__file__), fname)).read()\n\nsetup(\n    name='ralph',\n    version=read('./VERSION').strip(),\n    author='Grupa Allegro Sp. z o.o. and Contributors',\n    author_email='pylabs@allegro.pl',\n    description=\"Advanced Asset Management and DCIM system for data center and back office.\",\n    long_description='\\n'.join([read('README.md'), read('CHANGES')]),\n    url='http://ralph.allegrogroup.com/',\n    keywords='',\n    platforms=['any'],\n    license='Apache Software License v2.0',\n    packages=find_packages('src'),\n    include_package_data=True,\n    package_dir={'': 'src'},\n    zip_safe=False,  # because templates are loaded from file path\n    entry_points={\n        'console_scripts': [\n            'ralph = ralph.__main__:prod',\n            'dev_ralph = ralph.__main__:dev',\n            'test_ralph = ralph.__main__:test',\n        ],\n    },\n    classifiers=[\n        'Development Status :: 4 - Beta',\n        'Framework :: Django',\n        'Intended Audience :: System Administrators',\n        'Intended Audience :: Information Technology',\n        'License :: OSI Approved :: Apache Software License',\n        'Natural Language :: English',\n        'Operating System :: POSIX',\n        'Operating System :: MacOS :: MacOS X',\n        'Operating System :: Microsoft :: Windows :: Windows NT/2000',\n        'Programming Language :: Python',\n        'Programming Language :: Python :: 3',\n        'Programming Language :: Python :: 3.4',\n        'Topic :: Internet :: WWW/HTTP',\n    ]\n)\n", "path": "setup.py"}, {"content": "from ralph.settings import *  # noqa\n\nSTATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'  # noqa\nSTATIC_ROOT = os.path.join(BASE_DIR, 'var', 'static')\n\nLDAP_SERVER_OBJECT_USER_CLASS = 'user'  # possible values: \"user, person\n\n# FIXME: when going for full production, change it to False\n\nDEBUG = True\n", "path": "src/ralph/settings/prod.py"}]}