summaryrefslogtreecommitdiffstats
path: root/TODO
blob: 56d1a7f84244f1696692638bddfd0ee51b394a6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Future Tasks
============

Functional Changes
------------------

  * Support a field for annotating transitional packages, to help notify
    maintainers when their source packages depend on development packages for
    old library SONAME versions.
    - Add optional `Deprecated: yes[ <replacement-pkg>]` binary package field to
      SPF 2.0.  Note that this does not replace package relationship fields like
      `Depends`.
    - (Debian uses `Section: oldlibs` for this, but ProteanOS uses `Section` to
      separate packages into smaller indices that not all systems use, so we
      shouldn't just dump all transitional packages into one big section.  Also,
      ProteanOS uses `Section` to determine whether to architecture-qualify
      names of multiarch coinstallable packages.)
    - Add `Deprecated` to `lib/package/2.sh` `_OB_BINARY_FIELDS_OPTIONAL_2`.
    - Add an option to opkbuild to disable build dependency deprecation
      failures.  Maybe replace `-D`.  Set an environment variable for
      ob-checkbuilddeps.
    - Run `opkg info` instead of `opkg status` in ob-checkbuilddeps
      `check_dep()`.  If a `Deprecated` field exists, call `ob_error()` with the
      name of the replacement package (if any).  If build dependency deprecation
      failures are enabled, exit with an error status.
  * Make binary package `Description` fields architecture- and platform-
    independent (so a packages index Web site can show one description for a
    binary package for all its architectures and platforms).
    - Specify in SPF 2.0 #substvars-defined that `Host-Arch` and `Host-Plat`
      substitution variables shall not be set for `Description` fields.
    - `ob_set_source_substvar()` needs a third optional (for API compatibility)
      `archplat_dep` parameter (default `false`) that, if `true`, causes
      variable to be stored in a separate array.
    - `ob_set_package_substvars()` needs a second optional (for API
      compatibility) `archplat_indep` parameter (default `false`) that, if
      `false`, enables checking for variables in the aforementioned separate
      array.
    - In `_ob_set_package_substvars_2()`, replace:
          ob_set_source_substvar 'Host-Arch' "${OPK_HOST_ARCH}"
          ob_set_source_substvar 'Host-Plat' "${OPK_HOST_PLAT}"
      with:
          ob_set_source_substvar 'Host-Arch' "${OPK_HOST_ARCH}" true
          ob_set_source_substvar 'Host-Plat' "${OPK_HOST_PLAT}" true
    - In ob-gencontrol, replace:
          desc="$(ob_substvars "${desc}" "${pkg}")"
      with:
          desc="$(ob_substvars "${desc}" "${pkg}" true)"
    - Add `${Host-Arch}` (which should be copied verbatim to output control
      file) to `Description` in tests **BEFORE** above changes to verify correct
      behavior.
  * Split distribution packaging from upstream sources in source packages.
    - Non-native package:
      * `src:foo` is the distribution packaging, and it depends on
        `src:foo:upstream`
      * If the revision isn't "1", don't build and upload upstream sources.
      * pro-archman will need some modifications to handle this.
    - Native package:
      * `src:foo` is the whole package.
      * Upload everything always.
  * ob-installdocs: Handle non-directory non-regular files?
  * Someday restore (removed in commit 3cc4e19) and implement
    `ob_summarize_package_arch()` and `ob_summarize_package_plat()` to queue
    source packages for build daemons.

Copyright
=========

Copyright (C) 2018, 2019, 2023  Patrick McDermott

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.  This file is offered as-is,
without any warranty.