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$>