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[ ]` 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 opkbuild always run ob-checkbuilddeps regardless of `-d` option and only exit with an error status if ob-checkbuilddeps fails and `-d` is specified. * 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.