Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Aug 2020 08:07:15 +0200
From:      "louis.forums@xs4all.nl" <lsrbreda@xs4all.nl>
To:        "'Polytropon'" <freebsd@edvax.de>, <freebsd-questions@freebsd.org>
Subject:   RE: How to build a package from local source keeping all the original used (gnu autotools) build options !??
Message-ID:  <000701d675ee$fd65ecf0$f831c6d0$@xs4all.nl>
References:  <000001d67566$e2acd5a0$a80680e0$@xs4all.nl> <000701d67598$0c8aa560$259ff020$@xs4all.nl> <20200819041750.5784a1f9.freebsd@edvax.de> 

next in thread | previous in thread | raw e-mail | index | archive | help
Thanx,

Yep I am using outlook =F0=9F=98=8A doing ..... clever things ...... Not =
only outlook by the way ..... no idea what this forum mailing system is =
doing, but the layout of the mail here is ..... terrible ..... not at =
all the intended layout !!

But back to the problem, what I IMHO has been doing, seems quite =
logical.

Starting with the "maintainer part" ("maintainer process")
- sources are coming from GitHub, I did some local modifications
- so I am using the local git tree as the development tree
- generating a distribution file there

Than I distribute to port to generate the package to  "OS package =
maintainers" ("package build process")
- and yep it is on the same computer, but what is wrong with that ....

Like you wrote, I probably need to build with ports itself.  Which =
breaks the whole idea of distribution files / responsibility separation =
IMHO!! =E2=98=B9 =E2=98=B9=20

I am worried .... The package is designed to use "GNU-autotools options =
.... not to use port options ....=20
does port allow to build the same way .... as does autotools does  ?? =
does ./autogen.sh
./configure =E2=80=93 option-A=3D/abc   =E2=80=93 option-B=3D/def       =
etc (*required*)
work in ports !!??!!!

May be there is no problem, have to find out. May be you are willing to =
help here.
Assume I copy the whole source from my git directory to "what ever other =
directory on my computer", which commands should I use to get the =
intended result ...........




Louis=20
PS Alternative, could be to change the way that the distribution file is =
generated ........=20
do not know how to do that =E2=98=B9 =20
.... and it is surely related, but I think different subject !!=20

=20
-----Original Message-----
From: owner-freebsd-questions@freebsd.org =
<owner-freebsd-questions@freebsd.org> On Behalf Of Polytropon
Sent: Wednesday, August 19, 2020 4:18 AM
To: louis.forums@xs4all.nl
Cc: louis.forums@xs4all.nl <lsrbreda@xs4all.nl>; =
freebsd-questions@freebsd.org
Subject: Re: How to build a package from local source keeping all the =
original used (gnu autotools) build options !??

On Tue, 18 Aug 2020 21:44:54 +0200, louis.forums@xs4all.nl wrote:
> Hello,
>=20
>  =20

Something is wrong with your mailer - it damaged commands so they become =
incorrect - oh, never mind, "Microsoft Outlook", let's see if I can fix =
that a bit. ;-)



> After downloading a project from GitHub and making some changes, I can =

> build and install that project using the GNU autotools
>=20
> cd /var/git/<project>
>=20
> ./autogen.sh
>=20
> ./configure =E2=80=93 option-A=3D/abc   =E2=80=93 option-B=3D/def      =
 etc (*required*=20
> options)
              ^
That is probably a case of "smart substitution" where you want to have =
"--", but got "=E2=80=93 ", and I have no idea what " " could have been =
in your original input (it appears in many places).



> make
>=20
> make install
>=20
> make dist
>=20
>  =20
>=20
> However than I need to make a distribution package for that project
>=20
> cp /var/git/<project>/<distfile>   cd /usr/ports/<distfiles>
>=20
> cd /usr/ports/<category>/<project>

At this point, all make commands will use the options set for the port - =
which have not been set yet, i. e., the default port options will apply =
(as you have noticed in the result).
The reason is that you built source outside (!) of the ports tree, and =
you set those options outside of the tree with means that are not part =
of the "ports options framework".



> make makesum
>=20
> make stage
>=20
> make stage-qa
>=20
> make package
>=20
> That however does not work in the right way.=20

As I said, it works in the _intended_ way.

What you would need to do is to obtain the sources you need, usually by =
getting the most recent version of the ports tree (using svn), and then =
use "make config" so the ports framework can store the options.

If you need sources that are _different_ from those provided by the =
ports collection, you could try to copy the source tree obtained by git =
into the work/ subdirectory of the port.



> The problem is that =E2=80=9CPort=E2=80=9D is building the sources =
*again* (in   cd=20
> /usr/ports/<category>/work/<project>/
>=20
> And more severe =E2=80=A6. It is building the package without and
> *required* options =E2=80=A6=E2=80=A6. (the same as defined for the =
original build!)

That is exactly how it is supposed to work. :-)



> So my question: =E2=80=9Cis how to build an package having the same =
build=20
> settings as in the original autotools build=E2=80=9D
> (using same generated makefile, config etc.)

It might sound strange, but you're trying a "non-supported thing", which =
doesn't mean it couldn't work. As I mentioned, try to use the generated =
source tree, copied into the ports tree, from within (!) the ports tree, =
by revisiting the "make config"
screen to make sure all options are met as intended.


> Perhaps !!?? the whole rebuild process by the port-tools is not=20
> required at all (just my feeling(!)

The rebuild will only be performed if an existing package does not meet =
the requirements of the options set (option mismatch) or if the version =
is different (version mismatch). In any other cases, existing built =
and/or installed packages will be kept.

So the ports framework has no idea of which options have been applied to =
the files now available in distfiles/, that's why it needs to rebuild =
the (unsuited, because default option) packages as they do not exist =
yet.

The best idea here probably is to use "ports only" as a means to build =
stuff to avoid both version mismatch and options mismatch.



> If port could!!?? only do all the packaging stuff for the already=20
> build files! =E2=98=B9 =F0=9F=98=8A
>  =20

That is probably possible. Have you looked into poudriere?
For a "one-time action", using the regular ports tree might be okay, but =
if you're going to do updating and rebuilding more than once, maybe =
dedicating a poudriere installation with your custom options would be =
more convenient on the long run.

I hope I did understand your intentions correctly.



--
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
_______________________________________________
freebsd-questions@freebsd.org mailing list =
https://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to =
"freebsd-questions-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?000701d675ee$fd65ecf0$f831c6d0$>