Re: Error on mingw-pkg distribute

Keith Marshall <[email protected]>
Newsgroups gmane.comp.gnu.mingw.user
Organization MinGW.org Project
Message-ID <[email protected]>
On 08/01/2020 22:37, Cesar Strauss wrote:
> In ticket #39246 [1], Keith asks me to package a newer version of
> awk for MSYS. I took the opportunity to try out his mingw-pkg tool
> [2], but ran into trouble. Since, according to Keith, he supports his
> tool on this mailing list, I am following-up here.>
> My steps were:
> 
> 1) Clone, build and install mingw-pkg [2].
> 
> 2) Read "mingw-pkg --help"
> 
> 3) Inspect the source for a better understanding of each command.
> 
> 4) Run an MSYS Developer Shell (the package is for MSYS).
> 
> 5) Unpack the source for awk [3] and go into the top directory.
> 
> 6) Run: mingw-pkg --arch=msys initialize

So far, so good, but what SCM have you bound in this step?  Please show
the content of your $HOME/.mingw-pkgrc configuration file.

> 7) Run: mingw-pkg --arch=msys mkspec
> 
> 8) Edit the Package Spec file on arch/msys (attached, work in
> progress)
> 
> 9) Create an MSYS specific patch and put it into arch/msys (attached)
> 
> 10) Run: mingw-pkg --arch=msys patch
> 
> 11) Run: mingw-pkg --arch=msys compile
> 
> Up to here, all seems to go well.
> 
> 12) Run: mingw-pkg --arch=msys install
> 
> This installs to /usr/local, where I was expecting some staging
> directory.

No.  It will install into whatever path is assigned to $prefix, and I
don't see anything in your pkgspec file to configure that, so it will
assume the autoconf default.  However...

> 12) Run: mingw-pkg --arch=msys distribute

...this step, (if it were working correctly), *would* create a staged
installation, independent of $prefix, except that...

> This gives an error:
> 
>  >>> prepare source distribution
> 
> mingw-pkg: *** FATAL *** no handler implemented for action
> 'stage_srcdist'

Without seeing your $HOME/.mingw-pkgrc, I can only speculate: the
required handler is provided by either the "git" or the "hg" plugin; if
you haven't loaded either of these, then you haven't initialized an SCM
source, whence the source package content may be derived.

> Note: I also tried the example pthreads-win32-2.10-pre.tar.xz in [2],
> with the same error above on the distribute step.
> 
> At this point, I suspected that mingw-pkg was incomplete, but Keith
> assures me he is using it for some time already.

I certainly have; my $HOME/.mingw-pkgrc (attached) includes the statement:

   load plugin hg

which provides a suitable "stage_srcdist" handler; it derives the source
package content from the local Mercurial repository, which this same
plugin would have created during your step (6).

I guess it is a fair comment that mingw-pkg is incomplete w.r.t. the
"distribute" action, unless you load the "hg" plugin, (which I have
tested comprehensively), or the "git" plugin, (which I have not).  At
some stage, we should probably develop a fall-back handler; also, some
more comprehensive documentation, than the existing "mingw-pkg --help"
output, would be useful.

> [1] Ticket #39246 - Please update MSYS awk; current awk-3.1.7
> implementation is too old to remain viable
> https://osdn.net/projects/mingw/ticket/39246
> 
> [2] MinGW Package Builder Tool
> https://osdn.net/users/keith/pf/mingw.pkg/wiki/FrontPage
> 
> [3] http://ftp.gnu.org/gnu/gawk/gawk-4.0.1.tar.xz

-- 
Regards,
Keith.

Public key available from keys.gnupg.net
Key fingerprint: C19E C018 1547 DE50 E1D4 8F53 C0AD 36C6 347E 5A3F

_______________________________________________
MinGW-Users mailing list
[email protected]

This list observes the Etiquette found at
http://www.mingw.org/Mailing_Lists.
We ask that you be polite and do the same.  Disregard for the list etiquette may cause your account to be moderated.

_______________________________________________
You may change your MinGW Account Options or unsubscribe at:
https://lists.osdn.me/mailman/listinfo/mingw-users
Also: mailto:[email protected]?subject=unsubscribe
.mingw-pkgrc (text/plain, 3.3 KB)
# .mingw-pkgrc
#
# Local initialization preferences for the mingw-pkg tool.
#
# If you plan to publish any MinGW package, or mingw-port, then you
# MUST stipulate your name, and e-mail address, so that such packages
# may be appropriately attributed.
#
AUTHOR="Keith Marshall"
AUTHOR_EMAIL="[email protected]"

# For packages which support GNU configure semantics, setting host,
# build, and initial configure_options here will cause mingw-pkg to
# invoke cross compiler tools, as appropriate.
#
host=${host-"mingw32"}
build=${build-"x86_64-pc-linux-gnu"}

# When building packages for deployment on MinGW hosts, requiring the
# use of cross compiler tools, then the host and build options must be
# prefaced to the mingw-pkg configure options; however, to support use
# of mingw-pkg for building the cross compiler tools themselves, defer
# this assignment until the --xtool option has been evaluated, and all
# other configure options have been assigned, by encapsulating these
# prefaced assignments within the xhost_configure_options variable, as
# a command which will be executed immediately prior to invocation of
# the configure script itself, when --xtool mode has NOT been enabled.
#
xhost_configure_options='echo --build=$build --host=$host $configure_options'

# When --xtool mode HAS been enabled, mingw-pkg needs to be informed
# of the installation prefix for the cross compiler tools; this should
# be specified in the xhost_prefix variable.
#
xhost_prefix=/home/keith/mingw32

# Some packages don't support GNU configure semantics, and may need some
# help to specify a host prefix for cross compiler tools; host_prefix may
# be interpreted within the package specification file, e.g. thus:
#
#    option compile ${host_prefix:+HOST_PREFIX=`$host_prefix-`}
#
# Note that this requires $host_prefix to expand to a command, which will
# write the requisite host prefix, excluding its normal '-' terminating
# punctuation, to its standard output; here, we specify an architecture
# dependent host prefix, which will be resolved only when the package
# specification file is parsed.
#
host_prefix='eval echo $ARCH'

# If you intend to publish MinGW packages, or any mingw-port, then you
# MUST enable one of the supported source code management (SCM) systems;
# currently, these are either Mercurial (hg), or git.  Uncomment ONE of
# the following two plugin loaders, according to your preference; note
# that, if you choose hg, you must also enable its mq extension, while
# if you choose git, you should install an mq-compatible patch queue
# management suite; Git-MQ (https://osdn.net/users/keith/pf/git-mq) is
# a suitable candidate.
#
#    load plugin git
#    load plugin hg
#
load plugin hg

# In the event that you do publish packages, or mingw-ports, you should
# also consider providing detached GPG signatures, so that users will be
# able to authenticate them.  Uncomment the following plugin loader, to
# activate the mingw-pkg package signing feature.
#
#    load plugin auth gpg $AUTHOR_EMAIL
#
load plugin auth gpg $AUTHOR_EMAIL

# The following setting allows all option parsing to be performed
# as if by GNU getopt_long_only(), (but without argument reordering);
# without this, GNU getopt_long() semantics will prevail.
#
#    optchk_getopt_long_only=true
#
optchk_getopt_long_only=true

# .mingw-pkgrc: end of file
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEwZ7AGBVH3lDh1I9TwK02xjR+Wj8FAl4WbZQACgkQwK02xjR+
Wj9lUA/7BfI4/OjaZNQjEjIUpLfIwve7b/Olb651xJPlgv+q3q+hqjjctIakw0LE
J7FGXPdDiCrOdV84Odqn6CicnOJ63SE97Lbgd5xleZf3UzBvoheKl5e83TenWgq8
i8NoUTVjHm1QeFqIeTBD66ev4/GHtS+f+dTO9TpwvpmYWvu/PoKRFrDOoW8e4MOg
7LcH88Wh6Q5F+EFADTCN0Qeu3MNoEyq7KTBQLMoIqSJLB3XD6lKskCtfSDeEeWA2
zP5uXUxH82PTJgxhy7EOYhOdKk6IkCmoPHpzF27/CFOEQW5OFuDc6/JCWTgG0sFB
aVwKBygs7wgXvZZRgl+PlJDGR2clxXzI/e0gEGiuxWDC7h/0B5U9+/3VYQQtWHRB
fZ7njg2OW3R7eYMuSONWG2E1zvbnUkvrTeMfkvhgJMLiJS9pbW5xjE+g0qoFP8Uu
4NcuYvnPdRQ0dZ7tab7S3k9GmoguqY9RDJwtrs1ba46eC8YKBrXC3zug6aRAIFP1
a080ZPpqw3f47MOUVq3reMuNHlrxtmsy9LfzRhnDGq4L4yri9uT9XE0CqzZfnhbv
t56Buvb0DnCilGF/IzSq09TR5hxRZT1N7mqSqElxB5bfwQYMtCH6WUIVx+wqzyLB
6EjttkM5msM1jXf05yrEWsR8b2D1tcmCX1nVxN0soC23Xw81Gy4=
=nn6n
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.