public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
* Building from source packages
@ 2016-05-13 14:33 Jon Turney
  2016-05-13 19:44 ` Andrew Schulman
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Jon Turney @ 2016-05-13 14:33 UTC (permalink / raw)
  To: cygwin-apps


Recently I've done a little prototyping of a system to build from 
uploaded source packages in a VM, to verify that they recreate packages 
with the same contents as the uploaded packages.

Issues I noted were:

* build time dependencies aren't recorded

Out of the 3135 cygported packages for x86, only 175 set DEPEND.

I don't know how we can ensure DEPEND contains accurate information 
without some sort of build service which tests that it does.

Also, there's probably room here for some policy on what is and isn't 
required in DEPEND i.e. packages essential for building, which are 
already dependencies of cygport, probably don't need to be listed. 
Additionally, some cygclasses probably imply additional build 
dependencies, i.e. 'inherit gnome' implies gnome-common is a build-dep, etc.

Further, turning DEPEND into a list of cygwin packages to install can be 
complex (e.g., if it contains some pkgconfig atoms, it requires 
knowledge of the files contained in all packages to find the one which 
contains a particular .pc file).

* a few packages mistakenly use DEPENDS

A few packages mistakenly use DEPENDS rather than DEPEND, which is 
silently ignored

pkg           maintainer
---           ----------
cloog-isl     Achim Gratz
isl           Achim Gratz
mpclib        Achim Gratz
svn_load_dirs David Rothenberger

* a handful of packages are oddities

These often contain source and patches, but no build script, so the 
configuration used by the maintainer to build the package isn't recorded 
(at least in a way accessible to automation)

pkg       ver         arch
---       ---         ----
bzr       2.6+b2-2    x86    contains source for 2.6b2-1 and 2.6+b2-2
exim      4.86-1      both
fetchmail 6.3.21-1    x86
flex      2.5.39-1    both   orphaned
ipc-utils 1.0-1       x86
mined     2015.25-0   x86_64 a note from maintainer pointing to x86 src
nmh       1.6-2       both   uniquely, g-b-s script name doesn't end .sh
popt      1.16-1      both   orphaned
suite3270 3.3.15ga9-1 both   uniquely, multiple g-b-s and one tarfile

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Building from source packages
  2016-05-13 14:33 Building from source packages Jon Turney
@ 2016-05-13 19:44 ` Andrew Schulman
  2016-05-23 13:54   ` Jon Turney
  2016-05-14  7:23 ` Achim Gratz
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 6+ messages in thread
From: Andrew Schulman @ 2016-05-13 19:44 UTC (permalink / raw)
  To: cygwin-apps

> * a few packages mistakenly use DEPENDS
> 
> A few packages mistakenly use DEPENDS rather than DEPEND, which is 
> silently ignored

I'm surprised none of them are mine.  It confuses me every time that I have to
use REQUIRES, but DEPEND instead of DEPENDS. I have to go look it up again once
or twice a month.

To minimize the cognitive load on maintainers' brains, I humbly propose that
cygport honor both REQUIRE and REQUIRES, and DEPEND and DEPENDS.

Or it that's too ugly, make them both of the same form, i.e. REQUIRE and DEPEND.
A one-time backwards-incompatible change that would make things easier in the
future.

Andrew

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Building from source packages
  2016-05-13 14:33 Building from source packages Jon Turney
  2016-05-13 19:44 ` Andrew Schulman
@ 2016-05-14  7:23 ` Achim Gratz
  2016-05-18 16:05 ` Corinna Vinschen
  2016-05-18 16:32 ` Marco Atzeri
  3 siblings, 0 replies; 6+ messages in thread
From: Achim Gratz @ 2016-05-14  7:23 UTC (permalink / raw)
  To: cygwin-apps

Am 13.05.2016 um 16:33 schrieb Jon Turney:
> Out of the 3135 cygported packages for x86, only 175 set DEPEND.
>
> I don't know how we can ensure DEPEND contains accurate information
> without some sort of build service which tests that it does.

That's the trouble exactly.  There is no way to find out if your build 
dependencies are complete short of starting with a base installation and 
then adding them one-by-one.  So far I've typically only added 
dependencies when the build would otherwise succeed anyway (due to 
alternatives picked up in configury).

> Also, there's probably room here for some policy on what is and isn't
> required in DEPEND i.e. packages essential for building, which are
> already dependencies of cygport, probably don't need to be listed.
> Additionally, some cygclasses probably imply additional build
> dependencies, i.e. 'inherit gnome' implies gnome-common is a build-dep,
> etc.

That will occasionally fall flat on its face when the dependencies of 
those tools themselves change, but then it is hard to figure out what 
the actual dependencies are unless you try to build manually, see above.

> Further, turning DEPEND into a list of cygwin packages to install can be
> complex (e.g., if it contains some pkgconfig atoms, it requires
> knowledge of the files contained in all packages to find the one which
> contains a particular .pc file).

Isn't that what cygcheck does?  What's missing is a record of all files 
read during the build from the installation.

> A few packages mistakenly use DEPENDS rather than DEPEND, which is
> silently ignored
>
> pkg           maintainer
> ---           ----------
> cloog-isl     Achim Gratz
> isl           Achim Gratz
> mpclib        Achim Gratz

Heh.  I'm pretty sure I've inherited the packages that way...  I'll try 
to remember that these need cleanup.

-- 
Achim.

(on the road :-)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Building from source packages
  2016-05-13 14:33 Building from source packages Jon Turney
  2016-05-13 19:44 ` Andrew Schulman
  2016-05-14  7:23 ` Achim Gratz
@ 2016-05-18 16:05 ` Corinna Vinschen
  2016-05-18 16:32 ` Marco Atzeri
  3 siblings, 0 replies; 6+ messages in thread
From: Corinna Vinschen @ 2016-05-18 16:05 UTC (permalink / raw)
  To: cygwin-apps

[-- Attachment #1: Type: text/plain, Size: 1184 bytes --]

On May 13 15:33, Jon Turney wrote:
> 
> Recently I've done a little prototyping of a system to build from uploaded
> source packages in a VM, to verify that they recreate packages with the same
> contents as the uploaded packages.
> 
> Issues I noted were:
> [...]
> * a handful of packages are oddities
> 
> These often contain source and patches, but no build script, so the
> configuration used by the maintainer to build the package isn't recorded (at
> least in a way accessible to automation)
> 
> pkg       ver         arch
> ---       ---         ----
> bzr       2.6+b2-2    x86    contains source for 2.6b2-1 and 2.6+b2-2
> exim      4.86-1      both
> fetchmail 6.3.21-1    x86
> flex      2.5.39-1    both   orphaned
> ipc-utils 1.0-1       x86

The orignal x86 package predates me using cygport.  The x86_64 package
has then probably been built by Yaakov, who's much less a slacker than
I am.  Just rebuilding the 32 bit packafge with Yaakov's 64 bit
cygport file will probably do.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Building from source packages
  2016-05-13 14:33 Building from source packages Jon Turney
                   ` (2 preceding siblings ...)
  2016-05-18 16:05 ` Corinna Vinschen
@ 2016-05-18 16:32 ` Marco Atzeri
  3 siblings, 0 replies; 6+ messages in thread
From: Marco Atzeri @ 2016-05-18 16:32 UTC (permalink / raw)
  To: cygwin-apps

On 13/05/2016 16:33, Jon Turney wrote:
>
> Recently I've done a little prototyping of a system to build from
> uploaded source packages in a VM, to verify that they recreate packages
> with the same contents as the uploaded packages.
>
> Issues I noted were:
>
>
> * a handful of packages are oddities
>
> These often contain source and patches, but no build script, so the
> configuration used by the maintainer to build the package isn't recorded
> (at least in a way accessible to automation)
>
> pkg       ver         arch
> ---       ---         ----
> bzr       2.6+b2-2    x86    contains source for 2.6b2-1 and 2.6+b2-2
> exim      4.86-1      both
> fetchmail 6.3.21-1    x86
> flex      2.5.39-1    both   orphaned
> ipc-utils 1.0-1       x86
> mined     2015.25-0   x86_64 a note from maintainer pointing to x86 src
> nmh       1.6-2       both   uniquely, g-b-s script name doesn't end .sh
> popt      1.16-1      both   orphaned
> suite3270 3.3.15ga9-1 both   uniquely, multiple g-b-s and one tarfile


flex and popt were probably built with a g-b-s like script by CGF.
I had the same issue when I adopted make.

popt version is last upstream, while
flex had a new release last November after long time

Regards
Marco

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Building from source packages
  2016-05-13 19:44 ` Andrew Schulman
@ 2016-05-23 13:54   ` Jon Turney
  0 siblings, 0 replies; 6+ messages in thread
From: Jon Turney @ 2016-05-23 13:54 UTC (permalink / raw)
  To: cygwin-apps

On 13/05/2016 20:44, Andrew Schulman wrote:
>> * a few packages mistakenly use DEPENDS
>>
>> A few packages mistakenly use DEPENDS rather than DEPEND, which is
>> silently ignored
>
> I'm surprised none of them are mine.  It confuses me every time that I have to
> use REQUIRES, but DEPEND instead of DEPENDS. I have to go look it up again once
> or twice a month.
>
> To minimize the cognitive load on maintainers' brains, I humbly propose that
> cygport honor both REQUIRE and REQUIRES, and DEPEND and DEPENDS.
>
> Or it that's too ugly, make them both of the same form, i.e. REQUIRE and DEPEND.
> A one-time backwards-incompatible change that would make things easier in the
> future.

Yes, I get confused by it too, which is how I noticed this problem.  But 
I'm not sure how to fix this.

I wonder if it's possible to check the set of variables which exist 
after evaluating the cygport file, and warn if there are unexpected ones.

(Any existing uses of temporary variables inside a cygport file would 
have to be unset before it exits to avoid warning about them, but that 
seems a fair price to pay...)

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-05-23 13:54 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-13 14:33 Building from source packages Jon Turney
2016-05-13 19:44 ` Andrew Schulman
2016-05-23 13:54   ` Jon Turney
2016-05-14  7:23 ` Achim Gratz
2016-05-18 16:05 ` Corinna Vinschen
2016-05-18 16:32 ` Marco Atzeri

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).