Hi Menche,

First, it should help if you Cc the maintainer too.

Timo posted a preview update for rc1. Any reason to not starting from
his diff ? https://marc.info/?l=openbsd-ports&m=153417784922634&w=2

Regarding your diff, comments inlined.

On Fri, Nov 09, 2018 at 08:43:32PM -0800, Menche wrote:
> Hello,
> 
> This updates lang/chicken to version 5.0.0. Note that two patch files
> were removed: core/patches/patch-csc_scm and
> core/patches/patch-eval_scm.
> 
> Index: core/patches/patch-defaults_make
> ===================================================================
> RCS file: /cvs/ports/lang/chicken/core/patches/patch-defaults_make,v
> retrieving revision 1.3
> diff -u -p -u -p -r1.3 patch-defaults_make
> --- core/patches/patch-defaults_make  27 Aug 2015 22:40:33
> -0000 1.3 +++ core/patches/patch-defaults_make        8 Nov 2018
> 22:01:15 -0000 @@ -1,7 +1,15 @@
> -$OpenBSD: patch-defaults_make,v 1.3 2015/08/27 22:40:33 juanfra Exp $
> ---- defaults.make.orig       Thu Aug 27 19:08:10 2015
> -+++ defaults.make    Thu Aug 27 19:09:56 2015
> -@@ -42,9 +42,9 @@ LIBDIR ?= $(PREFIX)/lib
> +--- defaults.make.orig       Wed Nov  7 10:02:01 2018
> ++++ defaults.make    Wed Nov  7 21:32:16 2018
> +@@ -27,7 +27,7 @@
> + 
> + # basic parameters
> + 
> +-BINARYVERSION = 9
> ++BINARYVERSION = $(LIBchicken_VERSION)
> + STACKDIRECTION ?= 1
> + CROSS_CHICKEN ?= 0
> + 

I am unsure using LIBchicken_VERSION for BINARYVERSION definition will
work well.

>From the PLIST point of vue, BINARYVERSION definition means:

> -lib/chicken/8/
> +lib/chicken/6.0/

But for chicken code, it defined C_BINARY_VERSION from BINARYVERSION,
and it expects as several place that C_BINARY_VERSION is a C integer:

eval.scm
900:(define-foreign-variable binary-version int "C_BINARY_VERSION")
1121:              (number->string binary-version))

egg-environment.scm
44:(define binary-version (foreign-value "C_BINARY_VERSION" int))
91:  (string-append default-libdir "/chicken/" (number->string binary-version)))
94:  (string-append default-runlibdir "/chicken/" (number->string 
binary-version)))

library.scm
6469:(define-foreign-variable binary-version int "C_BINARY_VERSION")

Having '6.0' could not work as expected as it will be truncated.

> Index: core/patches/patch-eval_scm
> ===================================================================
> RCS file: core/patches/patch-eval_scm
> diff -N core/patches/patch-eval_scm
> --- core/patches/patch-eval_scm       27 Aug 2015 22:40:33
> -0000 1.3 +++ /dev/null       1 Jan 1970 00:00:00 -0000
> @@ -1,13 +0,0 @@
> -$OpenBSD: patch-eval_scm,v 1.3 2015/08/27 22:40:33 juanfra Exp $
> ---- eval.scm.orig    Tue Aug  4 21:46:22 2015
> -+++ eval.scm Thu Aug 27 19:07:56 2015
> -@@ -1068,8 +1068,7 @@
> -      (if uses-soname?
> -          (string-append
> -           ##sys#load-library-extension
> --          "." 
> --          (number->string binary-version))
> -+          ".${LIBchicken_VERSION}")
> -          ##sys#load-library-extension)))
> -     (define complete
> -       (cut ##sys#string-append <> ext))

Timo version has a proper diff for eval.scm that resolve the
BINARYVERSION stuff while keeping the use of LIBchicken_VERSION for the
library name.


> Index: core/pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/lang/chicken/core/pkg/PLIST,v
> retrieving revision 1.4
> diff -u -p -u -p -r1.4 PLIST
> --- core/pkg/PLIST    4 Sep 2018 12:46:14 -0000       1.4
> +++ core/pkg/PLIST    8 Nov 2018 22:01:15 -0000
> @@ -12,33 +12,54 @@ include/chicken/
>  include/chicken/chicken-config.h
>  include/chicken/chicken.h
>  lib/chicken/
> -lib/chicken/8/
> -lib/chicken/8/chicken.import.so
> -lib/chicken/8/csi.import.so
> -lib/chicken/8/data-structures.import.so
> [...]

I think it could help if Makefile manages BINARYVERSION with SUBST_VARS.
It could make PLIST changes more smooth as the base directory will not
change anymore.

Something like:

        BINARYVERSION = 9
        SUBST_VARS += BINARYVERSION

PLIST will be:
> lib/chicken/
> lib/chicken/${BINARYVERSION}/
> lib/chicken/${BINARYVERSION}/chicken.import.so
> lib/chicken/${BINARYVERSION}/csi.import.so
> lib/chicken/${BINARYVERSION}/data-structures.import.so

But maybe it is overkill ? No strong opinion.

Thanks.
-- 
Sebastien Marie

Reply via email to