diff --git a/data/icons/hicolor/16x16/status/package-available-locked.svg b/data/icons/hicolor/16x16/status/package-available-locked.svg deleted file mode 100644 index 4d4e19197adf0ce12ca35f75c8444e6851c62c8e..0000000000000000000000000000000000000000 --- a/data/icons/hicolor/16x16/status/package-available-locked.svg +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="16" - height="16" - version="1.1" - viewBox="0 0 16 16" - id="svg8" - sodipodi:docname="package-available-locked.svg" - inkscape:version="0.92.2 2405546, 2018-03-11"> - <metadata - id="metadata14"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <defs - id="defs12" /> - <sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="792" - inkscape:window-height="480" - id="namedview10" - showgrid="false" - inkscape:zoom="14.75" - inkscape:cx="7.0564046" - inkscape:cy="8" - inkscape:window-x="403" - inkscape:window-y="85" - inkscape:window-maximized="0" - inkscape:current-layer="g6" /> - <g - transform="translate(0,-1036.3622)" - id="g6"> - <rect - style="fill:#e4e4e4;fill-opacity:1" - width="16" - height="16" - x="-1052.36" - y="-16" - rx=".8" - ry=".8" - transform="matrix(0,-1,-1,0,0,0)" - id="rect2" /> - <path - style="fill:#ffffff" - d="m 5,1041.3622 0,1.9998 -0.5000001,0 c -0.277,0 -0.5,0.223 -0.5,0.5 l 0,5 c 0,0.277 0.223,0.5 0.5,0.5 l 7.0000001,0 c 0.277,0 0.5,-0.223 0.5,-0.5 l 0,-5 c 0,-0.277 -0.223,-0.5 -0.5,-0.5 l -0.5,0 0,-1.9998 c 0,-2 -1,-2 -2,-2 l -2,0 c -1,0 -2,0 -2,2 z m 4,0 0,2 -2,0 0,-2 z" - id="path4" /> - </g> -</svg> diff --git a/data/icons/hicolor/16x16/status/package-available.svg b/data/icons/hicolor/16x16/status/package-available.svg deleted file mode 100644 index 242dc3e12f5d53d114d68725b0130f69332716f8..0000000000000000000000000000000000000000 --- a/data/icons/hicolor/16x16/status/package-available.svg +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="16" - height="16" - version="1.1" - viewBox="0 0 16 16" - id="svg6" - sodipodi:docname="package-available.svg" - inkscape:version="0.92.2 2405546, 2018-03-11"> - <metadata - id="metadata12"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <defs - id="defs10" /> - <sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="792" - inkscape:window-height="480" - id="namedview8" - showgrid="false" - inkscape:zoom="14.75" - inkscape:cx="8" - inkscape:cy="8" - inkscape:window-x="0" - inkscape:window-y="0" - inkscape:window-maximized="0" - inkscape:current-layer="svg6" /> - <rect - style="fill:#e4e4e4" - width="16" - height="16" - x="-16" - y="-16" - rx=".8" - ry=".8" - transform="matrix(0,-1,-1,0,0,0)" - id="rect2" /> -</svg> diff --git a/data/icons/hicolor/16x16/status/package-install.svg b/data/icons/hicolor/16x16/status/package-install.svg deleted file mode 100644 index 89cbdd74e9b7107c20a3bf2a20c5f20dd8002d0e..0000000000000000000000000000000000000000 --- a/data/icons/hicolor/16x16/status/package-install.svg +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="16" - height="16" - version="1.1" - viewBox="0 0 16 16" - id="svg8" - sodipodi:docname="package-install.svg" - inkscape:version="0.92.2 2405546, 2018-03-11"> - <metadata - id="metadata14"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <defs - id="defs12" /> - <sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="778" - inkscape:window-height="480" - id="namedview10" - showgrid="false" - inkscape:zoom="14.75" - inkscape:cx="8" - inkscape:cy="8" - inkscape:window-x="527" - inkscape:window-y="67" - inkscape:window-maximized="0" - inkscape:current-layer="g6" /> - <g - transform="translate(0,-1036.3622)" - id="g6"> - <rect - style="fill:#e4e4e4;fill-opacity:1" - width="16" - height="16" - x="-1052.36" - y="-16" - rx=".8" - ry=".8" - transform="matrix(0,-1,-1,0,0,0)" - id="rect2" /> - <path - style="fill:#8fb629;fill-opacity:1" - d="m 12.900392,1039.8778 -5.6582045,5.6563 -2.828125,-2.8281 L 3,1044.12 l 2.828125,2.8281 1.4140625,1.4141 1.4140625,-1.4141 5.658203,-5.6562 -1.414061,-1.4141 z" - id="path4" /> - </g> -</svg> diff --git a/data/icons/hicolor/16x16/status/package-installed-locked.svg b/data/icons/hicolor/16x16/status/package-installed-locked.svg deleted file mode 100644 index 37b47b01721fb7986337e975e507fcd5c23863f2..0000000000000000000000000000000000000000 --- a/data/icons/hicolor/16x16/status/package-installed-locked.svg +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="16" - height="16" - version="1.1" - viewBox="0 0 16 16" - id="svg8" - sodipodi:docname="package-installed-locked.svg" - inkscape:version="0.92.2 2405546, 2018-03-11"> - <metadata - id="metadata14"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <defs - id="defs12" /> - <sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="792" - inkscape:window-height="480" - id="namedview10" - showgrid="false" - inkscape:zoom="14.75" - inkscape:cx="8.1048439" - inkscape:cy="8" - inkscape:window-x="0" - inkscape:window-y="0" - inkscape:window-maximized="0" - inkscape:current-layer="g6" /> - <g - transform="translate(0,-1036.3622)" - id="g6"> - <rect - style="fill:#8fb633;fill-opacity:1" - width="16" - height="16" - x="-1052.36" - y="-16" - rx=".8" - ry=".8" - transform="matrix(0,-1,-1,0,0,0)" - id="rect2" /> - <path - style="fill:#ffffff" - d="m 5,1041.3622 0,1.9998 -0.5000001,0 c -0.277,0 -0.5,0.223 -0.5,0.5 l 0,5 c 0,0.277 0.223,0.5 0.5,0.5 l 7.0000001,0 c 0.277,0 0.5,-0.223 0.5,-0.5 l 0,-5 c 0,-0.277 -0.223,-0.5 -0.5,-0.5 l -0.5,0 0,-1.9998 c 0,-2 -1,-2 -2,-2 l -2,0 c -1,0 -2,0 -2,2 z m 4,0 0,2 -2,0 0,-2 z" - id="path4" /> - </g> -</svg> diff --git a/data/icons/hicolor/16x16/status/package-installed-updated.svg b/data/icons/hicolor/16x16/status/package-installed-updated.svg deleted file mode 100644 index a7b40412670b77c122e01e28e2189ca63f5eb9ef..0000000000000000000000000000000000000000 --- a/data/icons/hicolor/16x16/status/package-installed-updated.svg +++ /dev/null @@ -1,65 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="16" - height="16" - version="1.1" - viewBox="0 0 16 16" - id="svg8" - sodipodi:docname="package-installed-updated.svg" - inkscape:version="0.92.2 2405546, 2018-03-11"> - <metadata - id="metadata14"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <defs - id="defs12" /> - <sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="640" - inkscape:window-height="480" - id="namedview10" - showgrid="false" - inkscape:zoom="14.75" - inkscape:cx="8" - inkscape:cy="8" - inkscape:window-x="0" - inkscape:window-y="0" - inkscape:window-maximized="0" - inkscape:current-layer="g6" /> - <g - transform="translate(0,-1036.3622)" - id="g6"> - <rect - style="fill:#8fb633" - width="16" - height="16" - x="-1052.36" - y="-16" - rx=".8" - ry=".8" - transform="matrix(0,-1,-1,0,0,0)" - id="rect2" /> - </g> -</svg> diff --git a/data/icons/hicolor/16x16/status/package-reinstall.svg b/data/icons/hicolor/16x16/status/package-reinstall.svg deleted file mode 100644 index d3d7d7aced8186f603a216b7f8324c65fc4cf0e7..0000000000000000000000000000000000000000 --- a/data/icons/hicolor/16x16/status/package-reinstall.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" version="1.1" viewBox="0 0 16 16"> - <g transform="translate(0,-1036.3622)"> - <rect style="fill:#8fb633" width="16" height="16" x="-1052.36" y="-16" rx=".8" ry=".8" transform="matrix(0,-1,-1,0,0,0)"/> - <path style="fill:#ffffff" d="M 3 3 L 3 11 L 3 13 L 5 13 L 7 13 L 7 11 L 5 11 L 5 10.382812 L 5 5 L 11 5 L 11 9 L 9 9 L 10.5 11 L 12 13 L 13.5 11 L 15 9 L 13 9 L 13 3 L 3 3 z" transform="translate(0,1036.3622)"/> - </g> -</svg> diff --git a/data/icons/hicolor/16x16/status/package-remove.svg b/data/icons/hicolor/16x16/status/package-remove.svg deleted file mode 100644 index 450605153014abb48fa08d59f3db03fc497e45c1..0000000000000000000000000000000000000000 --- a/data/icons/hicolor/16x16/status/package-remove.svg +++ /dev/null @@ -1,6 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" version="1.1" viewBox="0 0 16 16"> - <g transform="translate(0,-1036.3622)"> - <rect style="fill:#ff6b26" width="16" height="16" x="-1052.36" y="-16" rx=".8" ry=".8" transform="matrix(0,-1,-1,0,0,0)"/> - <path style="fill:#ffffff" d="m 3.0502591,1040.8266 3.5355339,3.5356 -3.5355528,3.5356 1.4142136,1.4142 3.5355528,-3.5356 3.5355334,3.5355 1.4142,-1.4141 -3.535533,-3.5356 3.535552,-3.5356 -1.414212,-1.4142 -3.5355536,3.5356 -3.5355339,-3.5355 -1.4142004,1.4141 z"/> - </g> -</svg> diff --git a/data/icons/hicolor/16x16/status/package-upgrade.svg b/data/icons/hicolor/16x16/status/package-upgrade.svg deleted file mode 100644 index c8297fdc389262e95e2cdbfe7c81ebf12ac9a3de..0000000000000000000000000000000000000000 --- a/data/icons/hicolor/16x16/status/package-upgrade.svg +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="16" - height="16" - version="1.1" - viewBox="0 0 16 16" - id="svg8" - sodipodi:docname="package-upgrade.svg" - inkscape:version="0.92.2 2405546, 2018-03-11"> - <metadata - id="metadata14"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <defs - id="defs12" /> - <sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="792" - inkscape:window-height="480" - id="namedview10" - showgrid="false" - inkscape:zoom="14.75" - inkscape:cx="8" - inkscape:cy="8" - inkscape:window-x="0" - inkscape:window-y="0" - inkscape:window-maximized="0" - inkscape:current-layer="g6" /> - <g - transform="translate(0,-1036.3622)" - id="g6"> - <rect - style="fill:#8fb633;fill-opacity:1" - width="16" - height="16" - x="-1052.36" - y="-16" - rx=".8" - ry=".8" - transform="matrix(0,-1,-1,0,0,0)" - id="rect2" /> - <path - style="fill:#ffffff;fill-rule:evenodd" - d="m 7,1049.3622 0,-6 -2,0 3,-4 3,4 -2,0 0,6 z" - id="path4" /> - </g> -</svg> diff --git a/src/alpm_utils.vala b/src/alpm_utils.vala index 55c07df02a20190741936a55a5acebe45863c39e..e7050db2441b23f48d1347cad4243cd8aa5c979f 100644 --- a/src/alpm_utils.vala +++ b/src/alpm_utils.vala @@ -358,7 +358,7 @@ namespace Pamac { installed_version = (owned) installed_version, desc = (owned) desc, repo = (owned) repo_name, - size = alpm_pkg.isize, + installed_size = alpm_pkg.isize, download_size = alpm_pkg.download_size, builddate = alpm_pkg.builddate, installdate = alpm_pkg.installdate, @@ -621,9 +621,8 @@ namespace Pamac { // opt_pkg is at least optional for pkg if (optionalfor.length == 1) { success = trans_remove_pkg (opt_pkg.name); - } else { - optionalfor.free_inner (GLib.free); } + optionalfor.free_inner (GLib.free); } else { requiredby.free_inner (GLib.free); } diff --git a/src/cli.vala b/src/cli.vala index 5cf39abfdebf3370f47e72dc26ada36447b83010..fa73059bfd0af9be25e46432352842184b7dd1e4 100644 --- a/src/cli.vala +++ b/src/cli.vala @@ -1344,7 +1344,7 @@ namespace Pamac { print_aligned (properties[5], ": %s".printf (dgettext (null, "AUR")), max_length); } // Size - print_aligned (properties[6], ": %s".printf (format_size (details.size)), max_length); + print_aligned (properties[6], ": %s".printf (format_size (details.installed_size)), max_length); if (details.repo == dgettext (null, "AUR")) { AURPackageDetails aur_pkg_details = yield database.get_aur_pkg_details (details.name); // Package Base @@ -1731,7 +1731,7 @@ namespace Pamac { str_builder.append ("%-*s %-*s %s\n".printf ( version_length, pkg.version, repo_length, pkg.repo, - format_size (pkg.size))); + format_size (pkg.installed_size))); stdout.printf ("%s", str_builder.str); } } diff --git a/src/common.vala b/src/common.vala index c06c5f405118c6616e8f24fe388ce49b1a8a963a..56ac48f23200d33baf490de6754febb9e6f5d34b 100644 --- a/src/common.vala +++ b/src/common.vala @@ -25,42 +25,13 @@ namespace Pamac { public string installed_version; public string desc; public string repo; - public uint64 size; + public uint64 installed_size; public uint64 download_size; public string icon; public uint64 builddate; public uint64 installdate; } - struct PackageDetailsStruct { - public string name; - public string app_name; - public string version; - public string installed_version; - public string desc; - public string long_desc; - public string repo; - public uint64 size; - public string url; - public string icon; - public string screenshot; - public string packager; - public uint64 builddate; - public uint64 installdate; - public string reason; - public string has_signature; - public string[] licenses; - public string[] depends; - public string[] optdepends; - public string[] requiredby; - public string[] optionalfor; - public string[] provides; - public string[] replaces; - public string[] conflicts; - public string[] groups; - public string[] backups; - } - struct AURPackageStruct { public string name; public string version; @@ -72,28 +43,6 @@ namespace Pamac { public uint64 outofdate; } - struct AURPackageDetailsStruct { - public string name; - public string version; - public string desc; - public double popularity; - public string packagebase; - public string url; - public string maintainer; - public uint64 firstsubmitted; - public uint64 lastmodified; - public uint64 outofdate; - public uint64 numvotes; - public string[] licenses; - public string[] depends; - public string[] makedepends; - public string[] checkdepends; - public string[] optdepends; - public string[] provides; - public string[] replaces; - public string[] conflicts; - } - struct TransactionSummaryStruct { public PackageStruct[] to_install; public PackageStruct[] to_upgrade; diff --git a/src/common_daemon.vala b/src/common_daemon.vala index c8df54c9af19fbc582274f938155e227644bd84d..4aaeafc7750c58d26c79898191d8c5252b1d3c8a 100644 --- a/src/common_daemon.vala +++ b/src/common_daemon.vala @@ -25,42 +25,13 @@ namespace Pamac { public string installed_version; public string desc; public string repo; - public uint64 size; + public uint64 installed_size; public uint64 download_size; public string icon; public uint64 builddate; public uint64 installdate; } - public struct PackageDetailsStruct { - public string name; - public string app_name; - public string version; - public string installed_version; - public string desc; - public string long_desc; - public string repo; - public uint64 size; - public string url; - public string icon; - public string screenshot; - public string packager; - public string builddate; - public string installdate; - public string reason; - public string has_signature; - public string[] licenses; - public string[] depends; - public string[] optdepends; - public string[] requiredby; - public string[] optionalfor; - public string[] provides; - public string[] replaces; - public string[] conflicts; - public string[] groups; - public string[] backups; - } - public struct AURPackageStruct { public string name; public string version; @@ -72,28 +43,6 @@ namespace Pamac { public uint64 outofdate; } - public struct AURPackageDetailsStruct { - public string name; - public string version; - public string desc; - public double popularity; - public string packagebase; - public string url; - public string maintainer; - public uint64 firstsubmitted; - public uint64 lastmodified; - public string outofdate; - public uint64 numvotes; - public string[] licenses; - public string[] depends; - public string[] makedepends; - public string[] checkdepends; - public string[] optdepends; - public string[] provides; - public string[] replaces; - public string[] conflicts; - } - public struct TransactionSummaryStruct { public PackageStruct[] to_install; public PackageStruct[] to_upgrade; diff --git a/src/database.vala b/src/database.vala index 5bc35af6fedcd7eeace40c4f0d60be4f8987f5fc..21ce7f2210e1b68f806a9ad50f6b1642d81f8ea0 100644 --- a/src/database.vala +++ b/src/database.vala @@ -277,11 +277,11 @@ namespace Pamac { } public Package get_installed_pkg (string pkgname) { - return new Package.from_struct (initialise_pkg_struct (alpm_handle.localdb.get_pkg (pkgname))); + return initialise_pkg (alpm_handle.localdb.get_pkg (pkgname)); } public Package find_installed_satisfier (string depstring) { - return new Package.from_struct (initialise_pkg_struct (Alpm.find_satisfier (alpm_handle.localdb.pkgcache, depstring))); + return initialise_pkg (Alpm.find_satisfier (alpm_handle.localdb.pkgcache, depstring)); } public bool should_hold (string pkgname) { @@ -382,24 +382,29 @@ namespace Pamac { return (owned) matching_apps; } - PackageStruct initialise_pkg_struct (Alpm.Package? alpm_pkg) { + Package initialise_pkg (Alpm.Package? alpm_pkg) { + var pkg = new Package (); if (alpm_pkg != null) { - string installed_version = ""; - string repo_name = ""; - string desc = alpm_pkg.desc ?? ""; - string icon = ""; - string app_name = ""; + pkg.name = alpm_pkg.name; + pkg.version = alpm_pkg.version; + pkg.installed_size = alpm_pkg.isize; + pkg.download_size = alpm_pkg.download_size; + pkg.builddate = alpm_pkg.builddate; + pkg.installdate = alpm_pkg.installdate; + if (alpm_pkg.desc != null) { + pkg.desc = alpm_pkg.desc; + } if (alpm_pkg.origin == Alpm.Package.From.LOCALDB) { - installed_version = alpm_pkg.version; + pkg.installed_version = alpm_pkg.version; unowned Alpm.Package? sync_pkg = get_syncpkg (alpm_pkg.name); if (sync_pkg != null) { - repo_name = sync_pkg.db.name; + pkg.repo = sync_pkg.db.name; } else if (config.enable_aur) { var loop = new MainLoop (); get_aur_pkg.begin (alpm_pkg.name, (obj, res) => { var aur_pkg = get_aur_pkg.end (res); if (aur_pkg.name != "") { - repo_name = dgettext (null, "AUR"); + pkg.repo = dgettext (null, "AUR"); } loop.quit (); }); @@ -408,44 +413,22 @@ namespace Pamac { } else if (alpm_pkg.origin == Alpm.Package.From.SYNCDB) { unowned Alpm.Package? local_pkg = alpm_handle.localdb.get_pkg (alpm_pkg.name); if (local_pkg != null) { - installed_version = local_pkg.version; + pkg.installed_version = local_pkg.version; } - repo_name = alpm_pkg.db.name; + pkg.repo = alpm_pkg.db.name; } - if (repo_name != "" && repo_name != dgettext (null, "AUR")) { + if (pkg.repo != "" && pkg.repo != dgettext (null, "AUR")) { // find if pkgname provides only one app var matching_apps = get_pkgname_matching_apps (alpm_pkg.name); if (matching_apps.length () == 1) { As.App app = matching_apps.nth_data (0); - app_name = get_app_name (app); - desc = get_app_summary (app); - icon = get_app_icon (app, repo_name); + pkg.app_name = get_app_name (app); + pkg.desc = get_app_summary (app); + pkg.icon = get_app_icon (app, pkg.repo); } } - return PackageStruct () { - name = alpm_pkg.name, - app_name = (owned) app_name, - version = alpm_pkg.version, - installed_version = (owned) installed_version, - desc = (owned) desc, - repo = (owned) repo_name, - size = alpm_pkg.isize, - download_size = alpm_pkg.download_size, - builddate = alpm_pkg.builddate, - installdate = alpm_pkg.installdate, - icon = (owned) icon - }; - } else { - return PackageStruct () { - name = "", - app_name = "", - version = "", - installed_version = "", - desc = "", - repo = "", - icon = "" - }; } + return pkg; } List<Package> initialise_pkgs (Alpm.List<unowned Alpm.Package>? alpm_pkgs) { @@ -454,86 +437,59 @@ namespace Pamac { string[] foreign_pkgnames = {}; while (alpm_pkgs != null) { unowned Alpm.Package alpm_pkg = alpm_pkgs.data; - string installed_version = ""; - string repo_name = ""; + var pkg = new Package (); + pkg.name = alpm_pkg.name; + pkg.version = alpm_pkg.version; + if (alpm_pkg.desc != null) { + pkg.desc = alpm_pkg.desc; + } + pkg.installed_size = alpm_pkg.isize; + pkg.download_size = alpm_pkg.download_size; + pkg.builddate = alpm_pkg.builddate; + pkg.installdate = alpm_pkg.installdate; if (alpm_pkg.origin == Alpm.Package.From.LOCALDB) { - installed_version = alpm_pkg.version; + pkg.installed_version = alpm_pkg.version; unowned Alpm.Package? sync_pkg = get_syncpkg (alpm_pkg.name); if (sync_pkg != null) { - repo_name = sync_pkg.db.name; + pkg.repo = sync_pkg.db.name; } else if (config.enable_aur) { foreign_pkgnames += alpm_pkg.name; } } else if (alpm_pkg.origin == Alpm.Package.From.SYNCDB) { unowned Alpm.Package? local_pkg = alpm_handle.localdb.get_pkg (alpm_pkg.name); if (local_pkg != null) { - installed_version = local_pkg.version; + pkg.installed_version = local_pkg.version; } - repo_name = alpm_pkg.db.name; + pkg.repo = alpm_pkg.db.name; } - if (repo_name == "" ) { + if (pkg.repo == "" ) { if (config.enable_aur) { - data.insert (alpm_pkg.name, new Package.from_struct (PackageStruct () { - name = alpm_pkg.name, - app_name = "", - version = alpm_pkg.version, - installed_version = (owned) installed_version, - desc = alpm_pkg.desc ?? "", - repo = (owned) repo_name, - size = alpm_pkg.isize, - download_size = alpm_pkg.download_size, - builddate = alpm_pkg.builddate, - installdate = alpm_pkg.installdate, - icon = "" - })); + data.insert (alpm_pkg.name, pkg); } else { - pkgs.append (new Package.from_struct (PackageStruct () { - name = alpm_pkg.name, - app_name = "", - version = alpm_pkg.version, - installed_version = (owned) installed_version, - desc = alpm_pkg.desc ?? "", - repo = (owned) repo_name, - size = alpm_pkg.isize, - download_size = alpm_pkg.download_size, - builddate = alpm_pkg.builddate, - installdate = alpm_pkg.installdate, - icon = "" - })); + pkgs.append (pkg); } } else { var apps = get_pkgname_matching_apps (alpm_pkg.name); if (apps.length () > 0) { // alpm_pkg provide some apps - foreach (unowned As.App app in apps) { - pkgs.append (new Package.from_struct (PackageStruct () { - name = alpm_pkg.name, - app_name = get_app_name (app), - version = alpm_pkg.version, - installed_version = installed_version, - desc = get_app_summary (app), - repo = repo_name, - size = alpm_pkg.isize, - download_size = alpm_pkg.download_size, - builddate = alpm_pkg.builddate, - installdate = alpm_pkg.installdate, - icon = get_app_icon (app, repo_name) - })); + unowned SList<As.App> apps_list = apps; + unowned As.App app = apps_list.data; + pkg.app_name = get_app_name (app); + pkg.desc = get_app_summary (app); + pkg.icon = get_app_icon (app, pkg.repo); + pkgs.append (pkg); + apps_list = apps_list.next; + while (apps_list != null) { + app = apps_list.data; + var pkg_dup = pkg.dup (); + pkg_dup.app_name = get_app_name (app); + pkg_dup.desc = get_app_summary (app); + pkg_dup.icon = get_app_icon (app, pkg_dup.repo); + pkgs.append (pkg_dup); + apps_list = apps_list.next; } } else { - pkgs.append (new Package.from_struct (PackageStruct () { - name = alpm_pkg.name, - app_name = "", - version = alpm_pkg.version, - installed_version = (owned) installed_version, - desc = alpm_pkg.desc ?? "", - repo = (owned) repo_name, - size = alpm_pkg.isize, - download_size = alpm_pkg.download_size, - builddate = alpm_pkg.builddate, - installdate = alpm_pkg.installdate, - icon = "" - })); + pkgs.append (pkg); } } alpm_pkgs.next (); @@ -581,19 +537,19 @@ namespace Pamac { if (local_pkg != null) { unowned Alpm.Package? sync_pkg = get_syncpkg (pkgname); if (sync_pkg != null) { - result.append (new Package.from_struct (PackageStruct () { - name = sync_pkg.name, - app_name = get_app_name (app), - version = sync_pkg.version, - installed_version = local_pkg.version, - desc = get_app_summary (app), - repo = sync_pkg.db.name, - size = local_pkg.isize, - download_size = sync_pkg.download_size, - builddate = local_pkg.builddate, - installdate = local_pkg.installdate, - icon = get_app_icon (app, sync_pkg.db.name) - })); + var pkg = new Package (); + pkg.name = sync_pkg.name; + pkg.app_name = get_app_name (app); + pkg.version = sync_pkg.version; + pkg.installed_version = local_pkg.version; + pkg.desc = get_app_summary (app); + pkg.repo = sync_pkg.db.name; + pkg.installed_size = local_pkg.isize; + pkg.download_size = sync_pkg.download_size; + pkg.builddate = local_pkg.builddate; + pkg.installdate = local_pkg.installdate; + pkg.icon = get_app_icon (app, sync_pkg.db.name); + result.append (pkg); } } } @@ -741,7 +697,7 @@ namespace Pamac { } public Package get_sync_pkg (string pkgname) { - return new Package.from_struct (initialise_pkg_struct (get_syncpkg (pkgname))); + return initialise_pkg (get_syncpkg (pkgname)); } unowned Alpm.Package? find_dbs_satisfier (string depstring) { @@ -759,7 +715,7 @@ namespace Pamac { } public Package find_sync_satisfier (string depstring) { - return new Package.from_struct (initialise_pkg_struct (find_dbs_satisfier (depstring))); + return initialise_pkg (find_dbs_satisfier (depstring)); } Alpm.List<unowned Alpm.Package> search_local_db (string search_string) { @@ -940,38 +896,28 @@ namespace Pamac { return (owned) pkgs; } - AURPackageStruct initialise_aur_struct (Json.Object? json_object) { + AURPackage initialise_aur_pkg (Json.Object? json_object) { + var aur_pkg = new AURPackage (); if (json_object == null) { - return AURPackageStruct () { - name = "", - version = "", - installed_version = "", - desc = "", - packagebase = "" - }; - } - string installed_version = ""; + return aur_pkg; + } + aur_pkg.name = json_object.get_string_member ("Name"); + aur_pkg.version = json_object.get_string_member ("Version"); + // desc can be null + aur_pkg.desc = json_object.get_null_member ("Description") ? "" : json_object.get_string_member ("Description"); + aur_pkg.popularity = json_object.get_double_member ("Popularity"); + aur_pkg.packagebase = json_object.get_string_member ("PackageBase"); + aur_pkg.lastmodified = (uint64) json_object.get_int_member ("LastModified"); unowned Alpm.Package? pkg = alpm_handle.localdb.get_pkg (json_object.get_string_member ("Name")); if (pkg != null) { - installed_version = pkg.version; + aur_pkg.installed_version = pkg.version; } // set out of date - uint64 outofdate = 0; unowned Json.Node? out_node = json_object.get_member ("OutOfDate"); if (!out_node.is_null ()) { - outofdate = (uint64) out_node.get_int (); + aur_pkg.outofdate = (uint64) out_node.get_int (); } - return AURPackageStruct () { - name = json_object.get_string_member ("Name"), - version = json_object.get_string_member ("Version"), - installed_version = (owned) installed_version, - // desc can be null - desc = json_object.get_null_member ("Description") ? "" : json_object.get_string_member ("Description"), - popularity = json_object.get_double_member ("Popularity"), - packagebase = json_object.get_string_member ("PackageBase"), - lastmodified = (uint64) json_object.get_int_member ("LastModified"), - outofdate = outofdate - }; + return aur_pkg; } public async List<AURPackage> search_in_aur (string search_string) { @@ -980,13 +926,13 @@ namespace Pamac { aur_search_results.insert (search_string, pkgs); } var result = new List<AURPackage> (); - Json.Array aur_pkgs = aur_search_results.get (search_string); - aur_pkgs.foreach_element ((array, index, node) => { - Json.Object aur_pkg = node.get_object (); + var json_array = aur_search_results.get (search_string); + json_array.foreach_element ((array, index, node) => { + Json.Object json_object = node.get_object (); // remove results which is installed or exist in repos - if (alpm_handle.localdb.get_pkg (aur_pkg.get_string_member ("Name")) == null - && get_syncpkg (aur_pkg.get_string_member ("Name")) == null) { - result.append (new AURPackage.from_struct (initialise_aur_struct (aur_pkg))); + if (alpm_handle.localdb.get_pkg (json_object.get_string_member ("Name")) == null + && get_syncpkg (json_object.get_string_member ("Name")) == null) { + result.append (initialise_aur_pkg (json_object)); } }); return (owned) result; @@ -1068,17 +1014,17 @@ namespace Pamac { repo_name = sync_pkg.db.name; installed_version = local_pkg.version; } - result.append (new Package.from_struct (PackageStruct () { - name = sync_pkg.name, - app_name = get_app_name (app), - version = sync_pkg.version, - installed_version = (owned) installed_version, - desc = get_app_summary (app), - repo = (owned) repo_name, - size = sync_pkg.isize, - download_size = sync_pkg.download_size, - icon = get_app_icon (app, sync_pkg.db.name) - })); + var pkg = new Package (); + pkg.name = sync_pkg.name; + pkg.app_name = get_app_name (app); + pkg.version = sync_pkg.version; + pkg.installed_version = installed_version; + pkg.desc = get_app_summary (app); + pkg.repo = repo_name; + pkg.installed_size = sync_pkg.isize; + pkg.download_size = sync_pkg.download_size; + pkg.icon = get_app_icon (app, sync_pkg.db.name); + result.append (pkg); } } }); @@ -1238,48 +1184,23 @@ namespace Pamac { } public PackageDetails get_pkg_details (string pkgname, string appname, bool use_sync_pkg) { - string name = ""; - string app_name = ""; - string version = ""; - string installed_version = ""; - string desc = ""; - string long_desc = ""; - string url = ""; - string icon = ""; - string screenshot = ""; - string repo = ""; - uint64 size = 0; - string has_signature = ""; - string reason = ""; - string packager = ""; - uint64 builddate = 0; - uint64 installdate = 0; - string[] groups = {}; - string[] backups = {}; - string[] licenses = {}; - string[] depends = {}; - string[] optdepends = {}; - string[] requiredby = {}; - string[] optionalfor = {}; - string[] provides = {}; - string[] replaces = {}; - string[] conflicts = {}; + var details = new PackageDetails (); unowned Alpm.Package? alpm_pkg = alpm_handle.localdb.get_pkg (pkgname); unowned Alpm.Package? sync_pkg = get_syncpkg (pkgname); if (alpm_pkg != null) { - installed_version = alpm_pkg.version; + details.installed_version = alpm_pkg.version; } if (alpm_pkg == null || use_sync_pkg) { alpm_pkg = sync_pkg; } if (alpm_pkg != null) { // name - name = alpm_pkg.name; + details.name = alpm_pkg.name; // version - version = alpm_pkg.version; + details.version = alpm_pkg.version; // desc can be null if (alpm_pkg.desc != null) { - desc = alpm_pkg.desc; + details.desc = alpm_pkg.desc; } if (sync_pkg != null) { if (appname != "") { @@ -1289,15 +1210,15 @@ namespace Pamac { && get_app_name (app) == appname) { found = true; if (app.get_pkgname_default () == alpm_pkg.name) { - app_name = appname; - desc = get_app_summary (app); + details.app_name = appname; + details.desc = get_app_summary (app); try { - long_desc = As.markup_convert_simple (get_app_description (app)); + details.long_desc = As.markup_convert_simple (get_app_description (app)); } catch (Error e) { stderr.printf ("Error: %s\n", e.message); } - icon = get_app_icon (app, sync_pkg.db.name); - screenshot = get_app_screenshot (app); + details.icon = get_app_icon (app, sync_pkg.db.name); + details.screenshot = get_app_screenshot (app); } } }); @@ -1306,50 +1227,50 @@ namespace Pamac { var matching_apps = get_pkgname_matching_apps (pkgname); if (matching_apps.length () == 1) { As.App app = matching_apps.nth_data (0); - app_name = get_app_name (app); - desc = get_app_summary (app); + details.app_name = get_app_name (app); + details.desc = get_app_summary (app); try { - long_desc = As.markup_convert_simple (get_app_description (app)); + details.long_desc = As.markup_convert_simple (get_app_description (app)); } catch (Error e) { stderr.printf ("Error: %s\n", e.message); } - icon = get_app_icon (app, sync_pkg.db.name); - screenshot = get_app_screenshot (app); + details.icon = get_app_icon (app, sync_pkg.db.name); + details.screenshot = get_app_screenshot (app); } } } - size = alpm_pkg.isize; + details.installed_size = alpm_pkg.isize; // url can be null if (alpm_pkg.url != null) { - url = alpm_pkg.url; + details.url = alpm_pkg.url; } // packager can be null - packager = alpm_pkg.packager ?? ""; + details.packager = alpm_pkg.packager ?? ""; // groups - unowned Alpm.List list = alpm_pkg.groups; + unowned Alpm.List<unowned string> list = alpm_pkg.groups; while (list != null) { - groups += ((Alpm.List<unowned string>) list).data; + details.groups_priv.append (list.data); list.next (); } // licenses list = alpm_pkg.licenses; while (list != null) { - licenses += ((Alpm.List<unowned string>) list).data; + details.licenses_priv.append (list.data); list.next (); } // build_date - builddate = alpm_pkg.builddate; + details.builddate = alpm_pkg.builddate; // local pkg if (alpm_pkg.origin == Alpm.Package.From.LOCALDB) { // repo if (sync_pkg != null) { - repo = sync_pkg.db.name; + details.repo = sync_pkg.db.name; } else if (config.enable_aur) { var loop = new MainLoop (); get_aur_pkg.begin (alpm_pkg.name, (obj, res) => { var aur_pkg = get_aur_pkg.end (res); if (aur_pkg.name != "") { - repo = dgettext (null, "AUR"); + details.repo = dgettext (null, "AUR"); } loop.quit (); }); @@ -1357,102 +1278,77 @@ namespace Pamac { } // reason if (alpm_pkg.reason == Alpm.Package.Reason.EXPLICIT) { - reason = dgettext (null, "Explicitly installed"); + details.reason = dgettext (null, "Explicitly installed"); } else if (alpm_pkg.reason == Alpm.Package.Reason.DEPEND) { - reason = dgettext (null, "Installed as a dependency for another package"); + details.reason = dgettext (null, "Installed as a dependency for another package"); } else { - reason = dgettext (null, "Unknown"); + details.reason = dgettext (null, "Unknown"); } // install_date - installdate = alpm_pkg.installdate; + details.installdate = alpm_pkg.installdate; // backups - list = alpm_pkg.backups; - while (list != null) { - backups += "/" + ((Alpm.List<unowned Alpm.Backup>) list).data.name; + unowned Alpm.List<unowned Alpm.Backup> backups_list = alpm_pkg.backups; + while (backups_list != null) { + details.backups_priv.append ("/" + backups_list.data.name); list.next (); } // requiredby Alpm.List<string> pkg_requiredby = alpm_pkg.compute_requiredby (); - list = pkg_requiredby; - while (list != null) { - requiredby += ((Alpm.List<unowned string>) list).data; - list.next (); + unowned Alpm.List<string> string_list = pkg_requiredby; + while (string_list != null) { + details.requiredby_priv.append ((owned) string_list.data); + string_list.next (); } - pkg_requiredby.free_inner (GLib.free); // optionalfor Alpm.List<string> pkg_optionalfor = alpm_pkg.compute_optionalfor (); - list = pkg_optionalfor; - while (list != null) { - optionalfor += ((Alpm.List<unowned string>) list).data; - list.next (); + string_list = pkg_optionalfor; + while (string_list != null) { + details.optionalfor_priv.append ((owned) string_list.data); + string_list.next (); } - pkg_optionalfor.free_inner (GLib.free); // sync pkg } else if (alpm_pkg.origin == Alpm.Package.From.SYNCDB) { // repos - repo = alpm_pkg.db.name; + details.repo = alpm_pkg.db.name; // signature - has_signature = alpm_pkg.base64_sig != null ? dgettext (null, "Yes") : dgettext (null, "No"); + if (alpm_pkg.base64_sig != null) { + details.has_signature = dgettext (null, "Yes"); + } else { + details.has_signature = dgettext (null, "No"); + } } // depends - list = alpm_pkg.depends; - while (list != null) { - depends += ((Alpm.List<unowned Alpm.Depend>) list).data.compute_string (); - list.next (); + unowned Alpm.List<unowned Alpm.Depend> depends_list = alpm_pkg.depends; + while (depends_list != null) { + details.depends_priv.append (depends_list.data.compute_string ()); + depends_list.next (); } // optdepends - list = alpm_pkg.optdepends; - while (list != null) { - optdepends += ((Alpm.List<unowned Alpm.Depend>) list).data.compute_string (); - list.next (); + depends_list = alpm_pkg.optdepends; + while (depends_list != null) { + details.optdepends_priv.append (depends_list.data.compute_string ()); + depends_list.next (); } // provides - list = alpm_pkg.provides; - while (list != null) { - provides += ((Alpm.List<unowned Alpm.Depend>) list).data.compute_string (); - list.next (); + depends_list = alpm_pkg.provides; + while (depends_list != null) { + details.provides_priv.append (depends_list.data.compute_string ()); + depends_list.next (); } // replaces - list = alpm_pkg.replaces; - while (list != null) { - replaces += ((Alpm.List<unowned Alpm.Depend>) list).data.compute_string (); - list.next (); + depends_list = alpm_pkg.replaces; + while (depends_list != null) { + details.replaces_priv.append (depends_list.data.compute_string ()); + depends_list.next (); } // conflicts - list = alpm_pkg.conflicts; - while (list != null) { - conflicts += ((Alpm.List<unowned Alpm.Depend>) list).data.compute_string (); - list.next (); + depends_list = alpm_pkg.conflicts; + while (depends_list != null) { + details.conflicts_priv.append (depends_list.data.compute_string ()); + depends_list.next (); } } - return new PackageDetails.from_struct (PackageDetailsStruct () { - name = (owned) name, - app_name = (owned) app_name, - version = (owned) version, - installed_version = (owned) installed_version, - desc = (owned) desc, - long_desc = (owned) long_desc, - repo = (owned) repo, - size = size, - url = (owned) url, - icon = (owned) icon, - screenshot = (owned) screenshot, - packager = (owned) packager, - builddate = builddate, - installdate = installdate, - reason = (owned) reason, - has_signature = (owned) has_signature, - licenses = (owned) licenses, - depends = (owned) depends, - optdepends = (owned) optdepends, - requiredby = (owned) requiredby, - optionalfor = (owned) optionalfor, - provides = (owned) provides, - replaces = (owned) replaces, - conflicts = (owned) conflicts, - groups = (owned) groups, - backups = (owned) backups - }); + return details; } public List<string> get_pkg_files (string pkgname) { @@ -1674,7 +1570,7 @@ namespace Pamac { public async AURPackage get_aur_pkg (string pkgname) { if (config.enable_aur) { yield populate_aur_infos ({pkgname}); - return new AURPackage.from_struct (initialise_aur_struct (aur_infos.lookup (pkgname))); + return initialise_aur_pkg (aur_infos.lookup (pkgname)); } else { return new AURPackage (); } @@ -1685,151 +1581,113 @@ namespace Pamac { if (config.enable_aur) { yield populate_aur_infos (pkgnames); foreach (unowned string pkgname in pkgnames) { - data.insert (pkgname, new AURPackage.from_struct (initialise_aur_struct (aur_infos.lookup (pkgname)))); + data.insert (pkgname, initialise_aur_pkg (aur_infos.lookup (pkgname))); } } return data; } - AURPackageDetailsStruct initialise_aur_details_struct (Json.Object? json_object) { - string name = ""; - string version = ""; - string desc = ""; - double popularity = 0; - string packagebase = ""; - string url = ""; - string maintainer = ""; - uint64 firstsubmitted = 0; - uint64 lastmodified = 0; - uint64 outofdate = 0; - uint64 numvotes = 0; - string[] licenses = {}; - string[] depends = {}; - string[] makedepends = {}; - string[] checkdepends = {}; - string[] optdepends = {}; - string[] provides = {}; - string[] replaces = {}; - string[] conflicts = {}; + AURPackageDetails initialise_aur_details (Json.Object? json_object) { + var aur_details = new AURPackageDetails (); if (json_object != null) { // name - name = json_object.get_string_member ("Name"); + aur_details.name = json_object.get_string_member ("Name"); // version - version = json_object.get_string_member ("Version"); + aur_details.version = json_object.get_string_member ("Version"); // desc can be null if (!json_object.get_null_member ("Description")) { - desc = json_object.get_string_member ("Description"); + aur_details.desc = json_object.get_string_member ("Description"); } - popularity = json_object.get_double_member ("Popularity"); + aur_details.popularity = json_object.get_double_member ("Popularity"); // packagebase - packagebase = json_object.get_string_member ("PackageBase"); + aur_details.packagebase = json_object.get_string_member ("PackageBase"); // url can be null unowned Json.Node? node = json_object.get_member ("URL"); if (!node.is_null ()) { - url = node.get_string (); + aur_details.url = node.get_string (); } // maintainer can be null node = json_object.get_member ("Maintainer"); if (!node.is_null ()) { - maintainer = node.get_string (); + aur_details.maintainer = node.get_string (); } // firstsubmitted - firstsubmitted = (uint64) json_object.get_int_member ("FirstSubmitted"); + aur_details.firstsubmitted = (uint64) json_object.get_int_member ("FirstSubmitted"); // lastmodified - lastmodified = (uint64) json_object.get_int_member ("LastModified"); + aur_details.lastmodified = (uint64) json_object.get_int_member ("LastModified"); // outofdate can be null node = json_object.get_member ("OutOfDate"); if (!node.is_null ()) { - outofdate = (uint64) node.get_int (); + aur_details.outofdate = (uint64) node.get_int (); } //numvotes - numvotes = (uint64) json_object.get_int_member ("NumVotes"); + aur_details.numvotes = (uint64) json_object.get_int_member ("NumVotes"); // licenses node = json_object.get_member ("License"); if (!node.is_null ()) { node.get_array ().foreach_element ((array, index, _node) => { - licenses += _node.get_string (); + aur_details.licenses_priv.append (_node.get_string ()); }); } else { - licenses += dgettext (null, "Unknown"); + aur_details.licenses_priv.append (dgettext (null, "Unknown")); } // depends node = json_object.get_member ("Depends"); if (node != null) { node.get_array ().foreach_element ((array, index, _node) => { - depends += _node.get_string (); + aur_details.depends_priv.append (_node.get_string ()); }); } // optdepends node = json_object.get_member ("OptDepends"); if (node != null) { node.get_array ().foreach_element ((array, index, _node) => { - optdepends += _node.get_string (); + aur_details.optdepends_priv.append (_node.get_string ()); }); } // makedepends node = json_object.get_member ("MakeDepends"); if (node != null) { node.get_array ().foreach_element ((array, index, _node) => { - makedepends += _node.get_string (); + aur_details.makedepends_priv.append (_node.get_string ()); }); } // checkdepends node = json_object.get_member ("CheckDepends"); if (node != null) { node.get_array ().foreach_element ((array, index, _node) => { - checkdepends += _node.get_string (); + aur_details.checkdepends_priv.append (_node.get_string ()); }); } // provides node = json_object.get_member ("Provides"); if (node != null) { node.get_array ().foreach_element ((array, index, _node) => { - provides += _node.get_string (); + aur_details.provides_priv.append (_node.get_string ()); }); } // replaces node = json_object.get_member ("Replaces"); if (node != null) { node.get_array ().foreach_element ((array, index, _node) => { - replaces += _node.get_string (); + aur_details.replaces_priv.append (_node.get_string ()); }); } // conflicts node = json_object.get_member ("Conflicts"); if (node != null) { node.get_array ().foreach_element ((array, index, _node) => { - conflicts += _node.get_string (); + aur_details.conflicts_priv.append (_node.get_string ()); }); } } - var details = AURPackageDetailsStruct (); - details.name = (owned) name; - details.version = (owned) version ; - details.desc = (owned) desc; - details.popularity = popularity; - details.packagebase = (owned) packagebase; - details.url = (owned) url; - details.maintainer = (owned) maintainer ; - details.firstsubmitted = firstsubmitted; - details.lastmodified = lastmodified; - details.outofdate = outofdate; - details.numvotes = numvotes; - details.licenses = (owned) licenses; - details.depends = (owned) depends; - details.optdepends = (owned) optdepends; - details.checkdepends = (owned) checkdepends; - details.makedepends = (owned) makedepends; - details.provides = (owned) provides; - details.replaces = (owned) replaces; - details.conflicts = (owned) conflicts; - return details; + return aur_details; } public async AURPackageDetails get_aur_pkg_details (string pkgname) { if (config.enable_aur) { yield populate_aur_infos ({pkgname}); - return new AURPackageDetails.from_struct (initialise_aur_details_struct (aur_infos.lookup (pkgname))); + return initialise_aur_details (aur_infos.lookup (pkgname)); } else { return new AURPackageDetails (); } @@ -1840,7 +1698,7 @@ namespace Pamac { if (config.enable_aur) { yield populate_aur_infos (pkgnames); foreach (unowned string pkgname in pkgnames) { - data.insert (pkgname, new AURPackageDetails.from_struct (initialise_aur_details_struct (aur_infos.lookup (pkgname)))); + data.insert (pkgname, initialise_aur_details (aur_infos.lookup (pkgname))); } } return data; @@ -1941,7 +1799,7 @@ namespace Pamac { if (tmp_handle.should_ignore (installed_pkg) == 0) { unowned Alpm.Package? candidate = installed_pkg.sync_newversion (tmp_handle.syncdbs); if (candidate != null) { - repos_updates.append (new Package.from_struct (initialise_pkg_struct (candidate))); + repos_updates.append (initialise_pkg (candidate)); } else { if (config.check_aur_updates) { // check if installed_pkg is a local pkg @@ -2010,16 +1868,16 @@ namespace Pamac { string pkgbase = ""; string desc = ""; var pkgnames_found = new SList<string> (); - var pkgnames_table = new HashTable<string, AURPackageStruct?> (str_hash, str_equal); + var pkgnames_table = new HashTable<string, AURPackage> (str_hash, str_equal); while ((line = yield dis.read_line_async ()) != null) { if ("pkgbase = " in line) { pkgbase = line.split (" = ", 2)[1]; } else if ("pkgdesc = " in line) { desc = line.split (" = ", 2)[1]; if (!current_section_is_pkgbase) { - unowned AURPackageStruct? aur_struct = pkgnames_table.get (current_section); - if (aur_struct != null) { - aur_struct.desc = desc; + unowned AURPackage? aur_pkg = pkgnames_table.get (current_section); + if (aur_pkg != null) { + aur_pkg.desc = desc; } } } else if ("pkgver = " in line) { @@ -2035,22 +1893,21 @@ namespace Pamac { current_section = pkgname_found; current_section_is_pkgbase = false; if (pkgname_found in vcs_local_pkgs) { - var aur_struct = AURPackageStruct () { - name = pkgname_found, - version = version.str, - installed_version = alpm_handle.localdb.get_pkg (pkgname_found).version, - desc = desc, - packagebase = pkgbase - }; - pkgnames_table.insert (pkgname_found, (owned) aur_struct); + var aur_pkg = new AURPackage (); + aur_pkg.name = pkgname_found; + aur_pkg.version = version.str; + aur_pkg.installed_version = alpm_handle.localdb.get_pkg (pkgname_found).version; + aur_pkg.desc = desc; + aur_pkg.packagebase = pkgbase; + pkgnames_table.insert (pkgname_found, aur_pkg); pkgnames_found.append (pkgname_found); already_checked.add ((owned) pkgname_found); } } } foreach (unowned string pkgname_found in pkgnames_found) { - AURPackageStruct? aur_struct = pkgnames_table.take (pkgname_found); - vcs_packages.append (new AURPackage.from_struct ((owned) aur_struct)); + AURPackage? aur_pkg = pkgnames_table.take (pkgname_found); + vcs_packages.append (aur_pkg); } } catch (GLib.Error e) { stderr.printf ("Error: %s\n", e.message); @@ -2080,10 +1937,10 @@ namespace Pamac { unowned string new_version = pkg_info.get_string_member ("Version"); unowned string old_version = alpm_handle.localdb.get_pkg (name).version; if (Alpm.pkg_vercmp (new_version, old_version) == 1) { - updates.append (new AURPackage.from_struct (initialise_aur_struct (pkg_info))); + updates.append (initialise_aur_pkg (pkg_info)); } else if (!pkg_info.get_member ("OutOfDate").is_null ()) { // get out of date packages - outofdate.append (new AURPackage.from_struct (initialise_aur_struct (pkg_info))); + outofdate.append (initialise_aur_pkg (pkg_info)); } }); return new AURUpdates ((owned) updates, (owned) outofdate); diff --git a/src/manager_window.vala b/src/manager_window.vala index 2fc805d354416c77978e0341c87735a11a24a80d..1db5040541077223988786b2b02e224c5f17e099 100644 --- a/src/manager_window.vala +++ b/src/manager_window.vala @@ -173,10 +173,10 @@ namespace Pamac { } int sort_pkgs_by_size (Package pkg_a, Package pkg_b) { - if (pkg_a.size > pkg_b.size) { + if (pkg_a.installed_size > pkg_b.installed_size) { return -1; } - if (pkg_b.size > pkg_a.size) { + if (pkg_b.installed_size > pkg_a.installed_size) { return 1; } return sort_pkgs_by_name (pkg_a, pkg_b); @@ -1515,7 +1515,7 @@ namespace Pamac { label.ellipsize = Pango.EllipsizeMode.END; label.xalign = 0; row.version_box.pack_start (label); - row.size_label.label = GLib.format_size (pkg.size); + row.size_label.label = GLib.format_size (pkg.installed_size); } row.repo_label.label = pkg.repo; Gdk.Pixbuf pixbuf; diff --git a/src/package.vala b/src/package.vala index ee4f31c7faa8557d377438e439491042156d4508..bb40f6f089a3d84c2af5d70e3ae1528a96b0a505 100644 --- a/src/package.vala +++ b/src/package.vala @@ -19,64 +19,75 @@ namespace Pamac { public class Package: Object { - PackageStruct pkg_struct; - public string name { get {return pkg_struct.name;} } - public string app_name { get {return pkg_struct.app_name;} } - public string version { get {return pkg_struct.version;} } - public string installed_version { get {return pkg_struct.installed_version;} } - public string desc { get {return pkg_struct.desc;} } - public string repo { get {return pkg_struct.repo;} - internal set {pkg_struct.repo = value;} - } - public uint64 size { get {return pkg_struct.size;} } - public uint64 download_size { get {return pkg_struct.download_size;} } - public string icon { get {return pkg_struct.icon;} } - public uint64 builddate { get {return pkg_struct.builddate;} } - public uint64 installdate { get {return pkg_struct.installdate;} } - internal Package () { - pkg_struct = PackageStruct () { - name = "", - app_name = "", - version = "", - installed_version = "", - desc = "", - repo = "", - icon = "" - }; + public string name { get; internal set; default = "";} + public string app_name { get; internal set; default = "";} + public string version { get; internal set; default = "";} + public string installed_version { get; internal set; default = "";} + public string desc { get; internal set; default = "";} + public string repo { get; internal set; default = "";} + public uint64 installed_size { get; internal set; } + public uint64 download_size { get; internal set; } + public string icon { get; internal set; default = "";} + public uint64 builddate { get; internal set; } + public uint64 installdate { get; internal set; } + internal Package () {} + internal Package.from_struct (PackageStruct pkg_struct) { + name = pkg_struct.name; + app_name = pkg_struct.app_name; + version = pkg_struct.version; + installed_version = pkg_struct.installed_version; + desc = pkg_struct.desc; + repo = pkg_struct.repo; + icon = pkg_struct.icon; + installed_size = pkg_struct.installed_size; + download_size = pkg_struct.download_size; + builddate = pkg_struct.builddate; + installdate = pkg_struct.installdate; } - internal Package.from_struct (owned PackageStruct pkg_struct) { - this.pkg_struct = (owned) pkg_struct; + internal Package dup () { + var pkg = new Package (); + pkg.name = this.name; + pkg.app_name = this.app_name; + pkg.version = this.version; + pkg.installed_version = this.installed_version; + pkg.desc = this.desc; + pkg.repo = this.repo; + pkg.icon = this.icon; + pkg.installed_size = this.installed_size; + pkg.download_size = this.download_size; + pkg.builddate = this.builddate; + pkg.installdate = this.installdate; + return pkg; } } public class PackageDetails: Object { - PackageDetailsStruct pkg_struct; - public string name { get {return pkg_struct.name;} } - public string app_name { get {return pkg_struct.app_name;} } - public string version { get {return pkg_struct.version;} } - public string installed_version { get {return pkg_struct.installed_version;} } - public string desc { get {return pkg_struct.desc;} } - public string long_desc { get {return pkg_struct.long_desc;} } - public string repo { get {return pkg_struct.repo;} } - public uint64 size { get {return pkg_struct.size;} } - public string url { get {return pkg_struct.url;} } - public string icon { get {return pkg_struct.icon;} } - public string screenshot { get {return pkg_struct.screenshot;} } - public string packager { get {return pkg_struct.packager;} } - public uint64 builddate { get {return pkg_struct.builddate;} } - public uint64 installdate { get {return pkg_struct.installdate;} } - public string reason { get {return pkg_struct.reason;} } - public string has_signature { get {return pkg_struct.has_signature;} } - List<string> licenses_priv; - List<string> depends_priv; - List<string> optdepends_priv; - List<string> requiredby_priv; - List<string> optionalfor_priv; - List<string> provides_priv; - List<string> replaces_priv; - List<string> conflicts_priv; - List<string> groups_priv; - List<string> backups_priv; + internal List<string> licenses_priv; + internal List<string> depends_priv; + internal List<string> optdepends_priv; + internal List<string> requiredby_priv; + internal List<string> optionalfor_priv; + internal List<string> provides_priv; + internal List<string> replaces_priv; + internal List<string> conflicts_priv; + internal List<string> groups_priv; + internal List<string> backups_priv; + public string name { get; internal set; default = "";} + public string app_name { get; internal set; default = "";} + public string version { get; internal set; default = "";} + public string installed_version { get; internal set; default = "";} + public string desc { get; internal set; default = "";} + public string long_desc { get; internal set; default = "";} + public string repo { get; internal set; default = "";} + public string url { get; internal set; default = "";} + public string icon { get; internal set; default = "";} + public string screenshot { get; internal set; default = "";} + public string packager { get; internal set; default = "";} + public uint64 installed_size { get; internal set; } + public uint64 builddate { get; internal set; } + public uint64 installdate { get; internal set; } + public string reason { get; internal set; default = "";} + public string has_signature { get; internal set; default = "";} public List<string> licenses { get {return licenses_priv;} } public List<string> depends { get {return depends_priv;} } public List<string> optdepends { get {return optdepends_priv;} } @@ -88,20 +99,6 @@ namespace Pamac { public List<string> groups { get {return groups_priv;} } public List<string> backups { get {return backups_priv;} } internal PackageDetails () { - pkg_struct = PackageDetailsStruct () { - name = "", - app_name = "", - version = "", - desc = "", - long_desc = "", - repo = "", - url = "", - icon = "", - screenshot = "", - packager = "", - reason = "", - has_signature = "" - }; licenses_priv = new List<string> (); depends_priv = new List<string> (); optdepends_priv = new List<string> (); @@ -113,96 +110,50 @@ namespace Pamac { groups_priv = new List<string> (); backups_priv = new List<string> (); } - internal PackageDetails.from_struct (owned PackageDetailsStruct pkg_struct_) { - pkg_struct = (owned) pkg_struct_; - licenses_priv = new List<string> (); - depends_priv = new List<string> (); - optdepends_priv = new List<string> (); - requiredby_priv = new List<string> (); - optionalfor_priv = new List<string> (); - provides_priv = new List<string> (); - replaces_priv = new List<string> (); - conflicts_priv = new List<string> (); - groups_priv = new List<string> (); - backups_priv = new List<string> (); - foreach (unowned string str in pkg_struct.licenses) { - licenses_priv.append (str); - } - foreach (unowned string str in pkg_struct.depends) { - depends_priv.append (str); - } - foreach (unowned string str in pkg_struct.optdepends) { - optdepends_priv.append (str); - } - foreach (unowned string str in pkg_struct.requiredby) { - requiredby_priv.append (str); - } - foreach (unowned string str in pkg_struct.optionalfor) { - optionalfor_priv.append (str); - } - foreach (unowned string str in pkg_struct.provides) { - provides_priv.append (str); - } - foreach (unowned string str in pkg_struct.replaces) { - replaces_priv.append (str); - } - foreach (unowned string str in pkg_struct.conflicts) { - conflicts_priv.append (str); - } - foreach (unowned string str in pkg_struct.groups) { - groups_priv.append (str); - } - foreach (unowned string str in pkg_struct.backups) { - backups_priv.append (str); - } - } } public class AURPackage: Object { - AURPackageStruct pkg_struct; - public string name { get {return pkg_struct.name;} } - public string version { get {return pkg_struct.version;} } - public string installed_version { get {return pkg_struct.installed_version;} } - public string desc { get {return pkg_struct.desc;} } - public double popularity { get {return pkg_struct.popularity;} } - public string packagebase { get {return pkg_struct.packagebase;} } - public uint64 lastmodified { get {return pkg_struct.lastmodified;} } - public uint64 outofdate { get {return pkg_struct.outofdate;} } - internal AURPackage () { - pkg_struct = AURPackageStruct () { - name = "", - version = "", - installed_version = "", - desc = "", - packagebase = "" - }; - } - internal AURPackage.from_struct (owned AURPackageStruct pkg_struct) { - this.pkg_struct = (owned) pkg_struct; + public string name { get; internal set; default = "";} + public string version { get; internal set; default = "";} + public string installed_version { get; internal set; default = "";} + public string desc { get; internal set; default = "";} + public double popularity { get; internal set; } + public string packagebase { get; internal set; default = "";} + public uint64 lastmodified { get; internal set; } + public uint64 outofdate { get; internal set; } + internal AURPackage () {} + internal AURPackage.from_struct (AURPackageStruct pkg_struct) { + name = pkg_struct.name; + version = pkg_struct.version; + desc = pkg_struct.desc; + installed_version = pkg_struct.installed_version; + packagebase = pkg_struct.packagebase; + popularity = pkg_struct.popularity; + lastmodified = pkg_struct.lastmodified; + outofdate = pkg_struct.outofdate; } } public class AURPackageDetails: Object { - AURPackageDetailsStruct pkg_struct; - public string name { get {return pkg_struct.name;} } - public string version { get {return pkg_struct.version;} } - public string desc { get {return pkg_struct.desc;} } - public double popularity { get {return pkg_struct.popularity;} } - public string packagebase { get {return pkg_struct.packagebase;} } - public string url { get {return pkg_struct.url;} } - public string maintainer { get {return pkg_struct.maintainer;} } - public uint64 firstsubmitted { get {return pkg_struct.firstsubmitted;} } - public uint64 lastmodified { get {return pkg_struct.lastmodified;} } - public uint64 outofdate { get {return pkg_struct.outofdate;} } - public uint64 numvotes { get {return pkg_struct.numvotes;} } - List<string> licenses_priv; - List<string> depends_priv; - List<string> makedepends_priv; - List<string> checkdepends_priv; - List<string> optdepends_priv; - List<string> provides_priv; - List<string> replaces_priv; - List<string> conflicts_priv; + public string name { get; internal set; default = "";} + public string version { get; internal set; default = "";} + public string desc { get; internal set; default = "";} + public double popularity { get; internal set; } + public string packagebase { get; internal set; default = "";} + public string url { get; internal set; default = "";} + public string maintainer { get; internal set; default = "";} + public uint64 firstsubmitted { get; internal set; } + public uint64 lastmodified { get; internal set; } + public uint64 outofdate { get; internal set; } + public uint64 numvotes { get; internal set; } + internal List<string> licenses_priv; + internal List<string> depends_priv; + internal List<string> makedepends_priv; + internal List<string> checkdepends_priv; + internal List<string> optdepends_priv; + internal List<string> provides_priv; + internal List<string> replaces_priv; + internal List<string> conflicts_priv; public List<string> licenses { get {return licenses_priv;} } public List<string> depends { get {return depends_priv;} } public List<string> makedepends { get {return makedepends_priv;} } @@ -212,14 +163,6 @@ namespace Pamac { public List<string> replaces { get {return replaces_priv;} } public List<string> conflicts { get {return conflicts_priv;} } internal AURPackageDetails () { - pkg_struct = AURPackageDetailsStruct () { - name = "", - version = "", - desc = "", - packagebase = "", - url = "", - maintainer = "" - }; licenses_priv = new List<string> (); depends_priv = new List<string> (); makedepends_priv = new List<string> (); @@ -229,41 +172,6 @@ namespace Pamac { replaces_priv = new List<string> (); conflicts_priv = new List<string> (); } - internal AURPackageDetails.from_struct (owned AURPackageDetailsStruct pkg_struct_) { - this.pkg_struct = (owned) pkg_struct_; - licenses_priv = new List<string> (); - depends_priv = new List<string> (); - makedepends_priv = new List<string> (); - checkdepends_priv = new List<string> (); - optdepends_priv = new List<string> (); - provides_priv = new List<string> (); - replaces_priv = new List<string> (); - conflicts_priv = new List<string> (); - foreach (unowned string str in pkg_struct.licenses) { - licenses_priv.append (str); - } - foreach (unowned string str in pkg_struct.depends) { - depends_priv.append (str); - } - foreach (unowned string str in pkg_struct.makedepends) { - makedepends_priv.append (str); - } - foreach (unowned string str in pkg_struct.checkdepends) { - checkdepends_priv.append (str); - } - foreach (unowned string str in pkg_struct.optdepends) { - optdepends_priv.append (str); - } - foreach (unowned string str in pkg_struct.provides) { - provides_priv.append (str); - } - foreach (unowned string str in pkg_struct.replaces) { - replaces_priv.append (str); - } - foreach (unowned string str in pkg_struct.conflicts) { - conflicts_priv.append (str); - } - } } public class TransactionSummary: Object { diff --git a/src/transaction-cli.vala b/src/transaction-cli.vala index e0d20411c8a2162a7070efb906b9f829115627c5..5bfedfb51f5732e1bd20d950495040c10cc50a83 100644 --- a/src/transaction-cli.vala +++ b/src/transaction-cli.vala @@ -350,7 +350,7 @@ namespace Pamac { // first pass to compute pkgs size and strings length if (summary.to_remove.length () > 0) { foreach (unowned Package pkg in summary.to_remove) { - rsize += pkg.size; + rsize += pkg.installed_size; if (pkg.name.length > name_length) { name_length = pkg.name.length; } @@ -366,7 +366,7 @@ namespace Pamac { foreach (unowned Package pkg in summary.to_downgrade) { dsize += pkg.download_size; var installed_pkg = database.get_installed_pkg (pkg.name); - isize += ((int64) pkg.size - (int64) installed_pkg.size); + isize += ((int64) pkg.installed_size - (int64) installed_pkg.installed_size); if (pkg.name.length > name_length) { name_length = pkg.name.length; } @@ -398,7 +398,7 @@ namespace Pamac { foreach (unowned Package pkg in summary.to_install) { dsize += pkg.download_size; var installed_pkg = database.get_installed_pkg (pkg.name); - isize += ((int64) pkg.size - (int64) installed_pkg.size); + isize += ((int64) pkg.installed_size - (int64) installed_pkg.installed_size); if (pkg.name.length > name_length) { name_length = pkg.name.length; } @@ -428,7 +428,7 @@ namespace Pamac { foreach (unowned Package pkg in summary.to_upgrade) { dsize += pkg.download_size; var installed_pkg = database.get_installed_pkg (pkg.name); - isize += ((int64) pkg.size - (int64) installed_pkg.size); + isize += ((int64) pkg.installed_size - (int64) installed_pkg.installed_size); if (pkg.name.length > name_length) { name_length = pkg.name.length; } diff --git a/src/transaction.vala b/src/transaction.vala index 6bbc7fa52cdb28cc7af870114b31a47850d7ad1e..bec2c6774377cfd0fa297a0de2859297a3cbaf58 100644 --- a/src/transaction.vala +++ b/src/transaction.vala @@ -412,23 +412,23 @@ namespace Pamac { string desc = ""; string arch = Posix.utsname ().machine; var pkgnames_found = new SList<string> (); - var global_depends = new GenericArray<string> (); + var global_depends = new List<string> (); var global_checkdepends = new SList<string> (); var global_makedepends = new SList<string> (); - var global_conflicts = new GenericArray<string> (); - var global_provides = new GenericArray<string> (); - var global_replaces = new GenericArray<string> (); - var global_validpgpkeys = new GenericArray<string> (); - var pkgnames_table = new HashTable<string, AURPackageDetailsStruct?> (str_hash, str_equal); + var global_conflicts = new List<string> (); + var global_provides = new List<string> (); + var global_replaces = new List<string> (); + var global_validpgpkeys = new SList<string> (); + var pkgnames_table = new HashTable<string, AURPackageDetails> (str_hash, str_equal); while ((line = yield dis.read_line_async ()) != null) { if ("pkgbase = " in line) { pkgbase = line.split (" = ", 2)[1]; } else if ("pkgdesc = " in line) { desc = line.split (" = ", 2)[1]; if (!current_section_is_pkgbase) { - unowned AURPackageDetailsStruct? details_struct = pkgnames_table.get (current_section); - if (details_struct != null) { - details_struct.desc = desc; + unowned AURPackageDetails? details = pkgnames_table.get (current_section); + if (details != null) { + details.desc = desc; } } } else if ("pkgver = " in line) { @@ -453,16 +453,16 @@ namespace Pamac { string depend = line.split (" = ", 2)[1]; if (current_section_is_pkgbase){ if ("checkdepends" in line) { - global_checkdepends.append (depend); + global_checkdepends.append ((owned) depend); } else if ("makedepends" in line) { - global_makedepends.append (depend); + global_makedepends.append ((owned) depend); } else { - global_depends.add (depend); + global_depends.append ((owned) depend); } } else { - unowned AURPackageDetailsStruct? details_struct = pkgnames_table.get (current_section); - if (details_struct != null) { - details_struct.depends += depend; + unowned AURPackageDetails? details = pkgnames_table.get (current_section); + if (details != null) { + details.depends_priv.append ((owned) depend); } } } @@ -470,11 +470,11 @@ namespace Pamac { if ("provides = " in line || "provides_%s = ".printf (arch) in line) { string provide = line.split (" = ", 2)[1]; if (current_section_is_pkgbase) { - global_provides.add (provide); + global_provides.append ((owned) provide); } else { - unowned AURPackageDetailsStruct? details_struct = pkgnames_table.get (current_section); - if (details_struct != null) { - details_struct.provides += provide; + unowned AURPackageDetails? details = pkgnames_table.get (current_section); + if (details != null) { + details.provides_priv.append ((owned) provide); } } } @@ -482,11 +482,11 @@ namespace Pamac { if ("conflicts = " in line || "conflicts_%s = ".printf (arch) in line) { string conflict = line.split (" = ", 2)[1]; if (current_section_is_pkgbase) { - global_conflicts.add (conflict); + global_conflicts.append ((owned) conflict); } else { - unowned AURPackageDetailsStruct? details_struct = pkgnames_table.get (current_section); - if (details_struct != null) { - details_struct.conflicts += conflict; + unowned AURPackageDetails? details = pkgnames_table.get (current_section); + if (details != null) { + details.conflicts_priv.append ((owned) conflict); } } } @@ -494,31 +494,30 @@ namespace Pamac { if ("replaces = " in line || "replaces_%s = ".printf (arch) in line) { string replace = line.split (" = ", 2)[1]; if (current_section_is_pkgbase) { - global_replaces.add (replace); + global_replaces.append ((owned) replace); } else { - unowned AURPackageDetailsStruct? details_struct = pkgnames_table.get (current_section); - if (details_struct != null) { - details_struct.replaces += replace; + unowned AURPackageDetails? details = pkgnames_table.get (current_section); + if (details != null) { + details.replaces_priv.append ((owned) replace); } } } // grab validpgpkeys to check if they are imported } else if ("validpgpkeys" in line) { if ("validpgpkeys = " in line) { - global_validpgpkeys.add (line.split (" = ", 2)[1]); + global_validpgpkeys.append (line.split (" = ", 2)[1]); } } else if ("pkgname = " in line) { string pkgname_found = line.split (" = ", 2)[1]; current_section = pkgname_found; current_section_is_pkgbase = false; if (!pkgnames_table.contains (pkgname_found)) { - var details_struct = AURPackageDetailsStruct () { - name = pkgname_found, - version = version.str, - desc = desc, - packagebase = pkgbase - }; - pkgnames_table.insert (pkgname_found, (owned) details_struct); + var details = new AURPackageDetails (); + details.name = pkgname_found; + details.version = version.str; + details.desc = desc; + details.packagebase = pkgbase; + pkgnames_table.insert (pkgname_found, details); pkgnames_found.append ((owned) pkgname_found); } } @@ -528,33 +527,33 @@ namespace Pamac { } // create fake aur db entries foreach (unowned string pkgname_found in pkgnames_found) { - unowned AURPackageDetailsStruct? details_struct = pkgnames_table.get (pkgname_found); + unowned AURPackageDetails? details = pkgnames_table.get (pkgname_found); // populate empty list will global ones - if (global_depends.length > 0 && details_struct.depends.length == 0) { - details_struct.depends = (owned) global_depends.data; + if (global_depends.length () > 0 && details.depends.length () == 0) { + details.depends_priv = (owned) global_depends; } - if (global_provides.length > 0 && details_struct.provides.length == 0) { - details_struct.provides = (owned) global_provides.data; + if (global_provides.length () > 0 && details.provides.length () == 0) { + details.provides_priv = (owned) global_provides; } - if (global_conflicts.length > 0 && details_struct.conflicts.length == 0) { - details_struct.conflicts = (owned) global_conflicts.data; + if (global_conflicts.length () > 0 && details.conflicts.length () == 0) { + details.conflicts_priv = (owned) global_conflicts; } - if (global_replaces.length > 0 && details_struct.replaces.length == 0) { - details_struct.replaces = (owned) global_replaces.data; + if (global_replaces.length () > 0 && details.replaces.length () == 0) { + details.replaces_priv = (owned) global_replaces; } // add checkdepends and makedepends in depends if (global_checkdepends.length () > 0 ) { foreach (unowned string depend in global_checkdepends) { - details_struct.depends += depend; + details.depends_priv.append (depend); } } if (global_makedepends.length () > 0 ) { foreach (unowned string depend in global_makedepends) { - details_struct.depends += depend; + details.depends_priv.append (depend); } } // check deps - foreach (unowned string dep_string in details_struct.depends) { + foreach (unowned string dep_string in details.depends) { var pkg = database.find_installed_satisfier (dep_string); if (pkg.name == "") { pkg = database.find_sync_satisfier (dep_string); @@ -567,7 +566,7 @@ namespace Pamac { } } // write desc file - string pkgdir = "%s-%s".printf (pkgname_found, details_struct.version); + string pkgdir = "%s-%s".printf (pkgname_found, details.version); string pkgdir_path = "%s/%s".printf (aurdb_path, pkgdir); aur_desc_list.add (pkgdir); var file = GLib.File.new_for_path (pkgdir_path); @@ -582,53 +581,53 @@ namespace Pamac { // creating a DataOutputStream to the file var dos = new DataOutputStream (file.create (FileCreateFlags.REPLACE_DESTINATION)); // fake filename - dos.put_string ("%FILENAME%\n" + "%s-%s-any.pkg.tar.xz\n\n".printf (pkgname_found, details_struct.version)); + dos.put_string ("%FILENAME%\n" + "%s-%s-any.pkg.tar.xz\n\n".printf (pkgname_found, details.version)); // name dos.put_string ("%NAME%\n%s\n\n".printf (pkgname_found)); // version - dos.put_string ("%VERSION%\n%s\n\n".printf (details_struct.version)); + dos.put_string ("%VERSION%\n%s\n\n".printf (details.version)); // base - dos.put_string ("%BASE%\n%s\n\n".printf (details_struct.packagebase)); + dos.put_string ("%BASE%\n%s\n\n".printf (details.packagebase)); // desc - dos.put_string ("%DESC%\n%s\n\n".printf (details_struct.desc)); + dos.put_string ("%DESC%\n%s\n\n".printf (details.desc)); // arch (double %% before ARCH to escape %A) dos.put_string ("%%ARCH%\n%s\n\n".printf (arch)); // depends - if (details_struct.depends.length > 0) { + if (details.depends.length () > 0) { dos.put_string ("%DEPENDS%\n"); - foreach (unowned string depend in details_struct.depends) { + foreach (unowned string depend in details.depends) { dos.put_string ("%s\n".printf (depend)); } dos.put_string ("\n"); } // conflicts - if (details_struct.conflicts.length > 0) { + if (details.conflicts.length () > 0) { dos.put_string ("%CONFLICTS%\n"); - foreach (unowned string conflict in details_struct.conflicts) { + foreach (unowned string conflict in details.conflicts) { dos.put_string ("%s\n".printf (conflict)); } dos.put_string ("\n"); } // provides - if (details_struct.provides.length > 0) { + if (details.provides.length () > 0) { dos.put_string ("%PROVIDES%\n"); - foreach (unowned string provide in details_struct.provides) { + foreach (unowned string provide in details.provides) { dos.put_string ("%s\n".printf (provide)); } dos.put_string ("\n"); } // replaces - if (details_struct.replaces.length > 0) { + if (details.replaces.length () > 0) { dos.put_string ("%REPLACES%\n"); - foreach (unowned string replace in details_struct.replaces) { + foreach (unowned string replace in details.replaces) { dos.put_string ("%s\n".printf (replace)); } dos.put_string ("\n"); } } // check signature - if (global_validpgpkeys.length > 0) { - yield check_signature (pkgname, global_validpgpkeys.data); + if (global_validpgpkeys.length () > 0) { + yield check_signature (pkgname, global_validpgpkeys); } } catch (GLib.Error e) { stderr.printf ("Error: %s\n", e.message); @@ -640,7 +639,7 @@ namespace Pamac { } } - async void check_signature (string pkgname, string[] keys) { + async void check_signature (string pkgname, SList<string> keys) { foreach (unowned string key in keys) { var launcher = new SubprocessLauncher (SubprocessFlags.STDOUT_SILENCE | SubprocessFlags.STDERR_SILENCE); try {