From a8c0deb2a24ce62afa99e38df8512e9f4ab755f2 Mon Sep 17 00:00:00 2001 From: Hugo Osvaldo Barrera Date: Tue, 19 Jul 2022 18:40:24 +0200 Subject: [PATCH 1/3] Add a database column for package architectures --- aurweb/schema.py | 1 + .../c9d5aa1ad04c_add_column_packages_arch.py | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 migrations/versions/c9d5aa1ad04c_add_column_packages_arch.py diff --git a/aurweb/schema.py b/aurweb/schema.py index d2644541..839b8ef4 100644 --- a/aurweb/schema.py +++ b/aurweb/schema.py @@ -150,6 +150,7 @@ Packages = Table( Column('Version', String(255), nullable=False, server_default=text("''")), Column('Description', String(255)), Column('URL', String(8000)), + Column('Arch', String(255), server_default=text("''")), mysql_engine='InnoDB', mysql_charset='utf8mb4', mysql_collate='utf8mb4_general_ci', diff --git a/migrations/versions/c9d5aa1ad04c_add_column_packages_arch.py b/migrations/versions/c9d5aa1ad04c_add_column_packages_arch.py new file mode 100644 index 00000000..71960fa8 --- /dev/null +++ b/migrations/versions/c9d5aa1ad04c_add_column_packages_arch.py @@ -0,0 +1,24 @@ +"""Add column Packages.Arch + +Revision ID: c9d5aa1ad04c +Revises: d64e5571bc8d +Create Date: 2022-07-19 17:09:01.845288 + +""" +import sqlalchemy as sa + +from alembic import op + +# revision identifiers, used by Alembic. +revision = "c9d5aa1ad04c" +down_revision = "d64e5571bc8d" +branch_labels = None +depends_on = None + + +def upgrade(): + op.add_column("Packages", sa.Column("Arch", sa.String(length=255), nullable=True)) + + +def downgrade(): + op.drop_column("Packages", "Arch") From 65d8f18255a152515ad35f7b09a830a4781bd6cb Mon Sep 17 00:00:00 2001 From: Hugo Osvaldo Barrera Date: Tue, 19 Jul 2022 18:40:46 +0200 Subject: [PATCH 2/3] Show package architectures (if available) --- templates/partials/packages/details.html | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/templates/partials/packages/details.html b/templates/partials/packages/details.html index e0eda54c..9b1b63d6 100644 --- a/templates/partials/packages/details.html +++ b/templates/partials/packages/details.html @@ -157,6 +157,13 @@ {{ "Last Updated" | tr }}: {{ datetime_display(pkgbase.ModifiedTS) }} + {# Hide architecture for older packages for which we lack this data. #} + {% if pkg.Arch %} + + {{ "Architecture" | tr }}: + {{ pkg.Arch }} + + {% endif %} From 3cf974da4d2a5dbe51ed397835ecf5121e632da6 Mon Sep 17 00:00:00 2001 From: Hugo Osvaldo Barrera Date: Tue, 19 Jul 2022 18:51:51 +0200 Subject: [PATCH 3/3] Include architectures for dummy data --- schema/gendummydata.py | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/schema/gendummydata.py b/schema/gendummydata.py index aedfda7e..205e26e9 100755 --- a/schema/gendummydata.py +++ b/schema/gendummydata.py @@ -96,6 +96,22 @@ def genFortune(): return fortunes[random.randrange(0, len(fortunes))].replace("'", "") +def genArch() -> str: + arches: list[str] = [] + + if random.randrange(0, 10) < 8: + arches.append("x86_64") + if random.randrange(0, 10) < 6: + arches.append("aarch64") + if random.randrange(0, 10) < 2: + arches.append("riscv") + + if arches: + return ",".join(arches) + else: + return "any" + + # load the words, and make sure there are enough words for users/pkgs # log.debug("Grabbing words from seed file...") @@ -235,9 +251,11 @@ for p in list(seen_pkgs.keys()): s = s % (seen_pkgs[p], p, NOW, NOW, uuid, muid, puid) out.write(s) - s = ("INSERT INTO Packages (ID, PackageBaseID, Name, Version) VALUES " - "(%d, %d, '%s', '%s');\n") - s = s % (seen_pkgs[p], seen_pkgs[p], p, genVersion()) + s = ( + "INSERT INTO Packages (ID, PackageBaseID, Name, Version, Arch) VALUES " + "(%d, %d, '%s', '%s', '%s');\n" + ) + s = s % (seen_pkgs[p], seen_pkgs[p], p, genVersion(), genArch()) out.write(s) count += 1