"""
Put descriptions into sections table
@contact: Debian FTP Master <ftpmaster@debian.org>
@copyright: 2020, Joerg Jaspert <joerg@debian.org>
@license: GNU General Public License version 2 or later
"""
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
################################################################################
import psycopg2
from daklib.dak_exceptions import DBUpdateError
################################################################################
sections = {
"admin": {
"desc": 'Administration Utilities"',
"longdesc": "Utilities to administer system resources, manage user accounts, etc.",
},
"cli-mono": {
"desc": "Mono/CLI",
"longdesc": "Everything about Mono and the Common Language Infrastructure.",
},
"comm": {
"desc": "Communication Programs",
"longdesc": "Software to use your modem in the old fashioned style.",
},
"database": {"desc": "Databases", "longdesc": "Database Servers and Clients."},
"debian-installer": {
"desc": "debian-installer udeb packages",
"longdesc": "Special packages for building customized debian-installer variants. Do not install them on a normal system!",
},
"debug": {
"desc": "Debug packages",
"longdesc": "Packages providing debugging information for executables and shared libraries.",
},
"devel": {
"desc": "Development",
"longdesc": "Development utilities, compilers, development environments, libraries, etc.",
},
"doc": {
"desc": "Documentation",
"longdesc": "FAQs, HOWTOs and other documents trying to explain everything related to Debian, and software needed to browse documentation (man, info, etc).",
},
"editors": {
"desc": "Editors",
"longdesc": "Software to edit files. Programming environments.",
},
"education": {
"desc": "Education",
"longdesc": "Software for learning and teaching",
},
"electronics": {"desc": "Electronics", "longdesc": "Electronics utilities."},
"embedded": {
"desc": "Embedded software",
"longdesc": "Software suitable for use in embedded applications.",
},
"fonts": {"desc": "Fonts", "longdesc": "Font packages."},
"games": {
"desc": "Games",
"longdesc": "Programs to spend a nice time with after all this setting up.",
},
"gnome": {
"desc": "GNOME",
"longdesc": "The GNOME desktop environment, a powerful, easy to use set of integrated applications.",
},
"gnu-r": {
"desc": "GNU R",
"longdesc": "Everything about GNU R, a statistical computation and graphics system.",
},
"gnustep": {"desc": "GNUstep", "longdesc": "The GNUstep environment."},
"golang": {
"desc": "Go",
"longdesc": "Go programming language, libraries, and development tools.",
},
"graphics": {
"desc": "Graphics",
"longdesc": "Editors, viewers, converters... Everything to become/be an artist.",
},
"hamradio": {"desc": "Ham Radio", "longdesc": "Software for ham radio."},
"haskell": {"desc": "Haskell", "longdesc": "Everything about Haskell."},
"httpd": {"desc": "Web Servers", "longdesc": "Web servers and their modules."},
"interpreters": {
"desc": "Interpreters",
"longdesc": "All kind of interpreters for interpreted languages. Macro processors.",
},
"introspection": {
"desc": "Introspection",
"longdesc": "Machine readable introspection data for use by development tools.",
},
"java": {"desc": "Java", "longdesc": "Everything about Java."},
"javascript": {
"desc": "JavaScript",
"longdesc": "JavaScript programming language, libraries, and development tools.",
},
"kde": {
"desc": "KDE",
"longdesc": "The K Desktop Environment, a powerful, easy to use set of integrated applications.",
},
"kernel": {
"desc": "Kernels",
"longdesc": "Operating System Kernels and related modules.",
},
"libdevel": {
"desc": "Library development",
"longdesc": "Libraries necessary for developers to write programs that use them.",
},
"libs": {
"desc": "Libraries",
"longdesc": "Libraries to make other programs work. They provide special features to developers.",
},
"lisp": {"desc": "Lisp", "longdesc": "Everything about Lisp."},
"localization": {
"desc": "Language packs",
"longdesc": "Localization support for big software packages.",
},
"mail": {
"desc": "Mail",
"longdesc": "Programs to route, read, and compose E-mail messages.",
},
"math": {"desc": "Mathematics", "longdesc": "Math software."},
"metapackages": {
"desc": "Meta Packages",
"longdesc": "Packages that mainly provide dependencies on other packages.",
},
"misc": {
"desc": "Miscellaneous",
"longdesc": "Miscellaneous utilities that didn't fit well anywhere else.",
},
"net": {
"desc": "Network",
"longdesc": "Daemons and clients to connect your system to the world.",
},
"news": {
"desc": "Newsgroups",
"longdesc": "Software to access Usenet, to set up news servers, etc.",
},
"ocaml": {
"desc": "OCaml",
"longdesc": "Everything about OCaml, an ML language implementation.",
},
"oldlibs": {
"desc": "Old Libraries",
"longdesc": "Old versions of libraries, kept for backward compatibility with old applications.",
},
"otherosfs": {
"desc": "Other OS's and file systems",
"longdesc": "Software to run programs compiled for other operating systems, and to use their filesystems.",
},
"perl": {
"desc": "Perl",
"longdesc": "Everything about Perl, an interpreted scripting language.",
},
"php": {"desc": "PHP", "longdesc": "Everything about PHP."},
"python": {
"desc": "Python",
"longdesc": "Everything about Python, an interpreted, interactive object oriented language.",
},
"raku": {
"desc": "Raku",
"longdesc": "Everything about Raku, an interpreted scripting language.",
},
"ruby": {
"desc": "Ruby",
"longdesc": "Everything about Ruby, an interpreted object oriented language.",
},
"rust": {
"desc": "Rust",
"longdesc": "Rust programming language, library crates, and development tools.",
},
"science": {"desc": "Science", "longdesc": "Basic tools for scientific work"},
"shells": {
"desc": "Shells",
"longdesc": "Command shells. Friendly user interfaces for beginners.",
},
"sound": {
"desc": "Sound",
"longdesc": "Utilities to deal with sound: mixers, players, recorders, CD players, etc.",
},
"tasks": {
"desc": "Tasks",
"longdesc": "Packages that are used by 'tasksel', a simple interface for users who want to configure their system to perform a specific task.",
},
"tex": {
"desc": "TeX",
"longdesc": "The famous typesetting software and related programs.",
},
"text": {
"desc": "Text Processing",
"longdesc": "Utilities to format and print text documents.",
},
"utils": {
"desc": "Utilities",
"longdesc": "Utilities for file/disk manipulation, backup and archive tools, system monitoring, input systems, etc.",
},
"vcs": {
"desc": "Version Control Systems",
"longdesc": "Version control systems and related utilities.",
},
"video": {
"desc": "Video",
"longdesc": "Video viewers, editors, recording, streaming.",
},
"web": {
"desc": "Web Software",
"longdesc": "Web servers, browsers, proxies, download tools etc.",
},
"x11": {
"desc": "X Window System software",
"longdesc": "X servers, libraries, window managers, terminal emulators and many related applications.",
},
"xfce": {
"desc": "Xfce",
"longdesc": "Xfce, a fast and lightweight Desktop Environment.",
},
"zope": {
"desc": "Zope/Plone Framework",
"longdesc": "Zope Application Server and Plone Content Managment System.",
},
}
[docs]def do_update(self):
"""
Update default settings for suites
"""
print(__doc__)
try:
c = self.db.cursor()
c.execute(
"""
ALTER TABLE section
ADD COLUMN description TEXT NOT NULL DEFAULT 'Missing shortdesc',
ADD COLUMN longdesc TEXT NOT NULL DEFAULT 'Missing longdesc'
"""
)
for section in sections:
c.execute(
"UPDATE section SET description=%s, longdesc=%s WHERE section=%s",
(section, sections[section]["desc"], sections[section]["longdesc"]),
)
c.execute(
"UPDATE section SET description=%s, longdesc=%s WHERE section=CONCAT('contrib/', %s)",
(section, sections[section]["desc"], sections[section]["longdesc"]),
)
c.execute(
"UPDATE section SET description=%s, longdesc=%s WHERE section=CONCAT('non-free-firmware/', %s)",
(section, sections[section]["desc"], sections[section]["longdesc"]),
)
c.execute(
"UPDATE section SET description=%s, longdesc=%s WHERE section=CONCAT('non-free/', %s)",
(section, sections[section]["desc"], sections[section]["longdesc"]),
)
c.execute("UPDATE config SET value = '124' WHERE name = 'db_revision'")
self.db.commit()
except psycopg2.ProgrammingError as msg:
self.db.rollback()
raise DBUpdateError(
"Unable to apply sick update 124, rollback issued. Error message : %s"
% (str(msg))
)