Opened 2 years ago

Last modified 2 days ago

#29779 needs_review enhancement

pkgconf: Update to 1.8.0, remove runtime dep on environment variable SAGE_LOCAL

Reported by: mkoeppe Owned by:
Priority: major Milestone: sage-9.7
Component: packages: standard Keywords: sd111
Cc: mjo, dimpase, vbraun Merged in:
Authors: Matthias Koeppe Reviewers:
Report Upstream: N/A Work issues:
Branch: u/mkoeppe/pkg_config_installed_from_spkg_pkgconf_should_not_depend_on_environment_variable_sage_local (Commits, GitHub, GitLab) Commit: 9c123af40bb81e2809549e1dc7ff3d84c03f14ea
Dependencies: Stopgaps:

Status badges

Description (last modified by mkoeppe)

(from #29411)

We upgrade pkgconf from the ancient version 0.9.7 and make it work outside of sage-env.

Change History (19)

comment:1 Changed 23 months ago by mkoeppe

  • Cc mjo added

comment:2 Changed 23 months ago by mjo

It looks like we can specify the *.pc file location at build time using --with-pkg-config-dir:

https://github.com/pkgconf/pkgconf/blob/master/configure.ac

Afterwards, we can probably just symlink pkgconf to "pkg-config", and then rely on PATH to choose the right one.

comment:3 Changed 23 months ago by mjo

src/bin/sage-env already prepends the sage-specific *.pc file path to PKG_CONFIG_PATH in case the system pkg-config is used. From pkgconf's spkg-configure.m4:

AS_IF([test -z "$ac_cv_path_PKGCONF"], [
   sage_spkg_install_pkgconf=yes
   AC_SUBST(SAGE_PKG_CONFIG_PATH, [''])
   AC_MSG_RESULT([installing pkgconf spkg])], [
dnl the following as needed as long as Sage creates .pc files during build and/or configure
   AC_SUBST(SAGE_PKG_CONFIG_PATH, ['$SAGE_LOCAL/lib/pkgconfig'])
   AC_MSG_RESULT([using pkg-config from the system])
])

Then in sage-env,

if [ -n "$SAGE_PKG_CONFIG_PATH" ]; then
    # set up external pkg-config to look into SAGE_LOCAL/lib/pkgconfig/
    # (Sage's pkgconf spkg takes care of this, if installed)
    export PKG_CONFIG_PATH="$SAGE_PKG_CONFIG_PATH${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
fi

So we "shouldn't" be hurt by ditching the pkgconf wrapper script and hard-coding the full list of paths into pkgconf at build time.

comment:4 Changed 23 months ago by mkoeppe

Sounds right to me

comment:5 Changed 19 months ago by mkoeppe

  • Milestone changed from sage-9.2 to sage-9.3

comment:6 Changed 18 months ago by mkoeppe

  • Keywords sd111 added

Hoping we can make progress on this ticket this week - https://wiki.sagemath.org/days111

comment:7 Changed 14 months ago by mkoeppe

  • Milestone changed from sage-9.3 to sage-9.4

Sage development has entered the release candidate phase for 9.3. Setting a new milestone for this ticket based on a cursory review of ticket status, priority, and last modification date.

comment:8 Changed 12 months ago by mkoeppe

Any progress here?

comment:9 Changed 10 months ago by mkoeppe

  • Milestone changed from sage-9.4 to sage-9.5

comment:10 Changed 5 months ago by mkoeppe

  • Milestone changed from sage-9.5 to sage-9.6

comment:11 Changed 6 weeks ago by mkoeppe

  • Milestone changed from sage-9.6 to sage-9.7

comment:12 Changed 4 weeks ago by mkoeppe

@mjo, it sounds like you have some free time. Care to work on this ticket?

comment:13 Changed 4 weeks ago by mjo

I never wanted to work on it in the first place. pkg-config is a standard, stable, system utility that's available everywhere. We should delete the SPKG and require that the user have it installed. Treadmill tickets like these are a complete waste of time, but not mine.

comment:14 Changed 12 days ago by mkoeppe

  • Summary changed from pkg-config installed from SPKG pkgconf should not depend on environment variable SAGE_LOCAL to pkgconf: Update to 1.8.0, remove runtime dep on environment variable SAGE_LOCAL

comment:15 Changed 12 days ago by mkoeppe

  • Branch set to u/mkoeppe/pkg_config_installed_from_spkg_pkgconf_should_not_depend_on_environment_variable_sage_local

comment:16 Changed 12 days ago by mkoeppe

  • Authors set to Matthias Koeppe
  • Cc dimpase vbraun added
  • Commit set to 0e26f838af84a8d566e5d5e87af0a4e8e668e151
  • Description modified (diff)
  • Status changed from new to needs_review

New commits:

eeb61dfbuild/pkgs/pkgconf: Update to 1.8.0
0e26f83build/pkgs/pkgconf: Use SAGE_LOCAL at build time, not run time

comment:17 Changed 11 days ago by dimpase

there are changes of $SAGE_LOCAL to unprefixed by $. What does it do - if it was to be substituted I'd expect @SAGE_LOCAL@?

comment:18 Changed 10 days ago by mkoeppe

These are resolved as m4 macros - see the m4 invocation in spkg-postinst.in

comment:19 Changed 2 days ago by git

  • Commit changed from 0e26f838af84a8d566e5d5e87af0a4e8e668e151 to 9c123af40bb81e2809549e1dc7ff3d84c03f14ea

Branch pushed to git repo; I updated commit sha1. New commits:

9c123afbuild/pkgs/sagelib/spkg-install: Poison SAGE_LOCAL
Note: See TracTickets for help on using tickets.