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") 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 diff --git a/templates/partials/packages/details.html b/templates/partials/packages/details.html index ca7159be..c7948c0b 100644 --- a/templates/partials/packages/details.html +++ b/templates/partials/packages/details.html @@ -160,6 +160,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 %}