1. 04 Sep, 2018 2 commits
  2. 03 Sep, 2018 8 commits
  3. 23 Aug, 2018 3 commits
  4. 02 Aug, 2018 2 commits
    • Max Rees's avatar
      up2date/create_apks: add checksum of APKBUILD · add1222e
      Max Rees authored
      Sometimes all you do to an APKBUILD is add a comment or meddle with the
      whitespace - but you don't want that to cause an unnecessary rebuild,
      especially if it's a large package! So let's embed a checksum of the
      APKBUILD (less comments, leading / trailing whitespace, and blanks) in
      the created APKs. Then, when up2date is run, if APKBUILD checksums are
      present in the APKs, and those checksums don't match, we can say we're
      **not** up2date.
      
      If the checksum is missing from any of the APKs, we'll fall back to
      just comparing the mtime of the APKBUILD with the main APK, along with
      the other mtime checks that are performed regardless.
      
      While we're at it, we can add some debugging prints so that the exact
      cause of failed up2dates is more clear.
      add1222e
    • Max Rees's avatar
      Don't use "_" for ignored variables · fff8b1e7
      Max Rees authored
      Eventually it'd be nice to use "_" as a gettext function so we can do
      i18n :)
      fff8b1e7
  5. 01 Aug, 2018 2 commits
  6. 31 Jul, 2018 9 commits
  7. 30 Jul, 2018 1 commit
  8. 28 Jul, 2018 1 commit
  9. 21 Jul, 2018 4 commits
  10. 20 Jul, 2018 5 commits
    • Max Rees's avatar
      deps: make "ignoring" messages more readable · 69098feb
      Max Rees authored
      69098feb
    • Max Rees's avatar
      deps: remove self from build order · 71e1243a
      Max Rees authored
      71e1243a
    • Max Rees's avatar
      Clean up helpers/origins.sh a little · 5c6d535c
      Max Rees authored
      5c6d535c
    • Max Rees's avatar
      Long as we're writing APKBUILDs in sh, let's take advantage of it · bb470fa8
      Max Rees authored
      Using shell to build the package origin database makes it so fast that
      it doesn't even need to be cached in a file anymore (~0.4 seconds versus
      ~3.4 seconds for Adélie packages.git). Works great with Alpine too. And
      it's a simple enough task that the shell script isn't too cringey.
      bb470fa8
    • Max Rees's avatar
      Reorganize DAG / dependency resolution options · d61a3671
      Max Rees authored
      This is in preparation of near future commits that will further
      complicate things by categorizing existing -R behavior as one dependency
      resolution engine, and then adding a second one that more closely models
      abuild's behavior.
      
      As it stands, the current behavior is to:
      
      1. Trace makedepends + depends (and maybe checkdepends)
         * If one of the "--dag", "--dag-only", or "--dag-only-dot" options
           were given, the tracing is recursive and done ahead of time.
         * Otherwise, only the first level dependencies are collected.
         * Only add the dependency to the build list if not up2date.
         * If the dependency belongs to a different repository, add it to an
           install list.
      2. Build the packages in the build list
         * If the DAG was built, then use the topological sorted order.
         * Otherwise, the order is probably not deterministic (because sets
           are used) or efficient.
      
      As far as I can tell, abuild does something more like this:
      
      1. Collect the first level dependencies (makedepends, depends, and maybe
         checkdepends) into a list
      2. Check if each dependency is currently installed on the system.
         * If not, add it to a build list.
      3. Check if each dependency (again, from the original list) exists in
         the union of the system's default repositories
         (/etc/apk/repositories) and REPODEST/repo.
         * If not, add those to the build list as well.
      4. Collect the dependencies (makedepends, depends, and maybe
         checkdepends) of all packages in APORTSDIR, then recursively trace the
         dependencies of the packages from the build list
      5. Remove any packages from other repositories from this new list
      6. Check if each of the packages in the new list are up2date
         * If not, around we go again checking dependencies until something
           gets built.
      d61a3671
  11. 19 Jul, 2018 1 commit