Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build system causing waaaay too many rebuilds #2252

Closed
mc-butler opened this issue Jun 29, 2010 · 17 comments
Closed

build system causing waaaay too many rebuilds #2252

mc-butler opened this issue Jun 29, 2010 · 17 comments
Assignees
Labels
area: core Issues not related to a specific subsystem prio: medium Has the potential to affect progress
Milestone

Comments

@mc-butler
Copy link

Important

This issue was migrated from Trac:

Origin https://midnight-commander.org/ticket/2252
Reporter ossi (@ossilator)
Mentions mooffie@….com (@mooffie)

the build system puts the git version into config.h, which basically means that each git operation which modifies HEAD will cause a full rebuild. this is highly annoying, in particular during bisecting.

i suggest throwing VERSION out of config.h and having the relevant files include version.h directly. that would also have the advantage of removing the version.h parsing from the configure script.

@mc-butler
Copy link
Author

Changed by andrew_b (@aborodin) on Jun 30, 2010 at 5:57 UTC

Replying to ossi (#2252):

removing the version.h parsing from the configure script.

version.h is parsed to set correct version of RPM and DEB packages during automatic build of master branch (see #1905).

@mc-butler
Copy link
Author

Changed by ossi (@ossilator) on Jun 30, 2010 at 7:10 UTC (comment 2)

it would be possible to do the substitutions as a dependency (or part) of the respective packaging targets - the package definition files need only one or two substitutions each, so it isn't particularly bothersome. definitely better than re-running configure each time ...

@mc-butler
Copy link
Author

Changed by slyfox (@trofi) on Jun 30, 2010 at 18:11 UTC (comment 3)

It's also used in contrib/dist/redhat/mc.spec.in, so it might be not so trivial.
Simpler solution would be to put some hack to version.sh which would disable or force certain nonchanging version ID.

@mc-butler
Copy link
Author

Changed by ossi (@ossilator) on Jun 30, 2010 at 18:33 UTC (comment 4)

it's just one file more, so why would it matter?

i already thought about the hardcoded version hack as well, but it's rather annoying to use (for one, activating it already requires a recompile).

@mc-butler
Copy link
Author

Changed by andrew_b (@aborodin) on Nov 6, 2011 at 11:47 UTC (comment 5)

  • Milestone changed from 4.7 to Future Releases
  • Branch state set to no branch

@mc-butler
Copy link
Author

Changed by andrew_b (@aborodin) on Jan 14, 2014 at 4:31 UTC (comment 6)

Ticket #3153 has been marked as a duplicate of this ticket.

@mc-butler
Copy link
Author

Changed by mooffie (@mooffie) on Apr 6, 2015 at 5:40 UTC (comment 7)

  • Cc set to mooffie@….com

@mc-butler
Copy link
Author

Changed by andrew_b (@aborodin) on Apr 2, 2016 at 7:35 UTC (comment 8)

Related to #3603.

@mc-butler
Copy link
Author

Changed by ossi (@ossilator) on Oct 8, 2020 at 19:16 UTC (comment 9)

  • Resolution set to duplicate
  • Status changed from new to closed

Closed as duplicate of #4125.
clearly, i used the wrong keywords, as i didn't find my own ticket from a decade ago (also, i didn't remember it even existed, heh). FAIL.

fun fact: i initially hacked up a patch that implemented exactly what i described here. then i thought again, and did something different which is more effective and a smaller diff.

the new ticket has a patch and a description that matches it, so closing the old one.

@mc-butler
Copy link
Author

Changed by zaytsev (@zyv) on Jan 10, 2021 at 14:54 UTC (comment 10)

  • Milestone Future Releases deleted

@mc-butler
Copy link
Author

Changed by andrew_b (@aborodin) on Apr 3, 2021 at 11:03 UTC (comment 11)

  • Status changed from closed to reopened
  • Resolution duplicate deleted

@mc-butler
Copy link
Author

Changed by andrew_b (@aborodin) on Apr 3, 2021 at 11:08 UTC (comment 12)

  • Owner set to andrew_b
  • Branch state changed from no branch to on review
  • Status changed from reopened to accepted
  • Milestone set to 4.8.27

Branch: 2252_rebuild
Initial [75e9ea3b9f29189a9ea3af94932ee8512668cd18]
Now only lib/global.c depends on mc-version.h.
config.status --recheck is run in any case, but only lib/global.c is recompiled after git commit.

@mc-butler
Copy link
Author

Changed by ossi (@ossilator) on Apr 3, 2021 at 14:13 UTC (comment 13)

that's a lot better, and probably a reasonable default behavior, but still kinda annoying when doing active development or "archaeology". i'll keep applying my patch on top of this.

btw, the commit message of the first commit in the series is kinda weird, as it makes the commits formally non-atomic. the explanation should be in the "juicy" 2nd commit, while the first one can say something trivial like "rename ..., as it won't be handled according to normal autoconf rules soon" or some such.

@mc-butler
Copy link
Author

Changed by andrew_b (@aborodin) on Apr 4, 2021 at 7:19 UTC (comment 14)

Branch is repushed.
Main commit is first now. More comments are added.

@mc-butler
Copy link
Author

Changed by andrew_b (@aborodin) on Apr 11, 2021 at 13:58 UTC (comment 15)

  • Votes set to andrew_b
  • Branch state changed from on review to approved

@mc-butler
Copy link
Author

Changed by andrew_b (@aborodin) on Apr 11, 2021 at 14:02 UTC (comment 16)

  • Status changed from accepted to testing
  • Resolution set to fixed

Merged to master: [f67b6c1].

git log --pretty=oneline b5febbdd9..f67b6c1d0

@mc-butler
Copy link
Author

Changed by andrew_b (@aborodin) on Apr 11, 2021 at 14:04 UTC (comment 17)

  • Status changed from testing to closed

@mc-butler mc-butler marked this as a duplicate of #3153 Feb 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: core Issues not related to a specific subsystem prio: medium Has the potential to affect progress
Development

No branches or pull requests

2 participants