From a new git clone on a vanilla Linux box (with required tools by xorg), the build fails due to a line in the Makefile.am that uses "git-log" in lieu of "git log". I am new to xorg and git, I suspect it used to work in some distant past but no longer does. There are 24 Makefile in that situation and 2 that correctly use "git log". I intend to fix this by replacing "git-log" with "git log". I cannot verify on all platforms, I assume that git public interface is the same on all platforms. I would appreciate a buddy, as there is no substitute for experience in those matters. Another possible explanation is that there are some popular git related tools that provide the alternate "-" command name. Here is the offending line: ChangeLog: (GIT_DIR=$(top_srcdir)/.git git-log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2) Here is the list of Makefile.am: app/constype/Makefile.am app/glxcompmgr/Makefile.am app/mkcfm/Makefile.am app/twm/Makefile.am app/xev/Makefile.am app/xphelloworld/Makefile.am app/xplsprinters/Makefile.am app/xprehashprinterlist/Makefile.am driver/xf86-input-magellan/Makefile.am driver/xf86-input-microtouch/Makefile.am driver/xf86-input-penmount/Makefile.am driver/xf86-input-spaceorb/Makefile.am driver/xf86-input-void/Makefile.am driver/xf86-video-ati/Makefile.am driver/xf86-video-wsfb/Makefile.am proto/compositeproto/Makefile.am proto/damageproto/Makefile.am util/cf/Makefile.am util/gccmakedep/Makefile.am util/imake/Makefile.am util/lndir/Makefile.am font/adobe-utopia-type1/Makefile.am font/mutt-misc/Makefile.am font/sun-misc/Makefile.am
"git log" is the correct public interface on all systems, and the only form supported in git 1.6 & later. We've already fixed this in most modules, which is why you only found a short list unfixed. To make it easier to update in the future, the fix we've used is to replace the Makefile.am command with a macro defined in xorg-macros.m4, To use this, add to configure.ac: XORG_CHANGELOG If there isn't already a XORG_MACROS_VERSION at the top of the configure.ac, add one - if there is one, make sure it lists a version of at least 1.2, as in: # Require xorg-macros: XORG_CHANGELOG m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.1 or later before running autoconf/autogen])]) XORG_MACROS_VERSION(1.2) And then the Makefile.am changelog target rule becomes simply: ChangeLog: $(CHANGELOG_CMD)
Thanks Alan, exactly what I was hoping for. I'll proceed when I get my account created (requested in bug 22662).
> --- Comment #2 from Gaetan Nadon <memsize@videotron.ca> 2009-07-07 12:06:52 PST --- > Thanks Alan, exactly what I was hoping for. I'll proceed when I get my account > created (requested in bug 22662). > you don't have to wait for that before you can submit patches...
(In reply to comment #3) > > --- Comment #2 from Gaetan Nadon <memsize@videotron.ca> 2009-07-07 12:06:52 PST --- > > Thanks Alan, exactly what I was hoping for. I'll proceed when I get my account > > created (requested in bug 22662). > > > you don't have to wait for that before you can submit patches... In fact, usually you don't get an account until you've first submitted some patches, as noted on http://www.x.org/wiki/RepoPolicy Instructions to submit patches: http://wiki.x.org/wiki/Development/Documentation/SubmittingPatches
Created attachment 27504 [details] [review] [PATCH] twm: use XORG_CHANGELOG macro to create ChangeLog. #22611
Thanks Julian and Alan. I am attaching one patch for app/twm. I am not sure if it is for review, or if if it eventually gets pushed into the git repo. I was under the impression that xorg works with under central repository mode rather than kernel patch mode. I found that the following modules are now obsolete. There were git pulled by git_xorg.sh script, but absent from build.sh. They don't break the code, but they pollute the master branch, making obsolete code appear current. I can either fix them as well, or open a separate bug to remove them if appropriate. app/constype/Makefile.am app/glxcompmgr/Makefile.am app/mkcfm/Makefile.am app/xphelloworld/Makefile.am app/xplsprinters/Makefile.am app/xprehashprinterlist/Makefile.am driver/xf86-input-magellan/Makefile.am driver/xf86-input-microtouch/Makefile.am driver/xf86-input-penmount/Makefile.am driver/xf86-input-spaceorb/Makefile.am I am also adding the following which do not break the build, but were not using XORG_CHANGELOG: driver/xf86-video-mga/Makefile.am driver/xf86-video-nv/Makefile.am
Created attachment 27505 [details] [PATCH] xev: use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27507 [details] [PATCH] xf86-video-ati: use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27513 [details] [PATCH] wsfb: use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27514 [details] [PATCH] adobe-utopia-type1: use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27515 [details] [PATCH] mutt-misc: use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27516 [details] [PATCH] sun-misc: use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27520 [details] [PATCH] compositeproto: use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27523 [details] [PATCH] damageproto: use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27524 [details] [PATCH] cf: use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27531 [details] [PATCH] gccmakedep: use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27532 [details] [PATCH] imake: use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27533 [details] [PATCH] lndir: use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27534 [details] [PATCH] xf86-video-mga: use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27535 [details] [PATCH] xf86-video-nv: use XORG_CHANGELOG macro to create ChangeLog. #22611
Summary of changes: A patch has been provided for these: app/twm/Makefile.am app/xev/Makefile.am driver/xf86-video-ati/Makefile.am driver/xf86-video-mga/Makefile.am driver/xf86-video-nv/Makefile.am driver/xf86-video-wsfb/Makefile.am font/adobe-utopia-type1/Makefile.am font/mutt-misc/Makefile.am font/sun-misc/Makefile.am proto/compositeproto/Makefile.am proto/damageproto/Makefile.am util/cf/Makefile.am util/gccmakedep/Makefile.am util/imake/Makefile.am util/lndir/Makefile.am This one was fixed after my commit but before I created a patch: driver/xf86-input-void/Makefile.am I have not touched obsolete components, I'll remove them from my build. I don't know who is looking after git_xorg.sh.
Thanks for your work! Pushed the patches, with the exceptions/comments below: (btw, for the next time, please stick to 78 chars for the first commit line) (In reply to comment #21) > font/adobe-utopia-type1/Makefile.am > font/mutt-misc/Makefile.am > font/sun-misc/Makefile.am pushed, but I'm not even sure if these are still in use > util/cf/Makefile.am > util/gccmakedep/Makefile.am > util/lndir/Makefile.am dead repos, AFAICT. didn't push because - what's the point. > util/imake/Makefile.am held off on that, wasn't imake the tool for the monolithic tree? in that case we probably shouldn't rely on a modular tool? not sure about that. > proto/damageproto/Makefile.am failed to push that one, seems like there's a permission error on the server. > I have not touched obsolete components, I'll remove them from my build. I don't > know who is looking after git_xorg.sh. no-one, really. not actively anyway. If you want to fix it up, please go for it, you just need to register for a wiki account.
(In reply to comment #22) > > util/cf/Makefile.am > > dead repos, AFAICT. didn't push because - what's the point. > > > util/imake/Makefile.am > > held off on that, wasn't imake the tool for the monolithic tree? in that case > we probably shouldn't rely on a modular tool? not sure about that. util/cf are the config files for imake. util/imake is built with the modular tools - it was the build tool for the monolithic tree, but we provide it and the cf files now only as a tool for building software from other people that used imake and haven't ported to a more modern build system yet. I've gone ahead and pushed those two.
damageproto repository fixed up and your patch pushed. that leaves gccmakedep and lndir. do we still maintain those?
the fix (http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=76af48c43f829e7aebacc9f2a623823fa26ee22b) that was applied to xf86-video-ati breaks configure on systems with older versions of xorg macros. Is there any way to not require newer xorg macros?
Run make dist on a system with current macros, then copy the tarball to the system with old macros.
Additional modules requiring XORG_CHANGELOG-macro update: driver/xf86-video-xgi driver/xf86-video-r128 driver/xf86-video-radeonhd driver/xf86-video-geode I will attach a patch for each which can be pushed if appropriate. These modules were not cloned by git_xorg.sh, hence their late discovery. Thanks to the reviewers.
Created attachment 27729 [details] [review] [PATCH] xf86-video-xgi: Use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27730 [details] [review] [PATCH] xf86-video-r128: Use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27731 [details] [review] [PATCH] xf86-video-radeonhd: Use XORG_CHANGELOG macro to create ChangeLog. #22611
Created attachment 27732 [details] [review] [PATCH] xf86-video-geode: Use XORG_CHANGELOG macro to create ChangeLog. #22611
forwarded radeonhd to matthias so he can push it, pushed the others directly. thanks again for the patches. please keep an eye on radeonhd and close this bug when the patch goes upstream.
That leaves 3 patches pending: util/gccmakedep util/lndir driver/xf86-video-radeon I did some www searching and I think gccmakedep and lndir are there for a while. gccmakedep: "A dependency generator of the historic, monolythic X.org tree." "Xorg preprocessor dependency maker" "The version of the gccmakedep included in this X.Org Foundation release was originally written by the XFree86 Project based on code supplied by Hongjiu Lu." lndir: "Xorg recursive directory symlink tool" "lndir is used by X developers during development. It may or may not be used during the monolithic build of X as well. It's a utility that probably should be in GNU coreutils IMHO, but isn't."
(In reply to comment #33) > That leaves 3 patches pending: > > util/gccmakedep > util/lndir I question the need for the patch on these two repos since it increases the requirements for macros to 1.2. Since these repos are hardly maintained, if anything we should just s/git-log/git log/ instead of adding extra dependencies. especially since both are xorg-independent tools Alan? > driver/xf86-video-radeon looks like matthias doesn't want to apply the patch just yet but it will likely be pushed in the future.
Starting from which release of what package has that macro become available? On xf86-video-geode, we'd rather avoid bumping xserver-core-dev or similar dependencies just to accommodate such a change, since many Geode-based products use e.g. Open Embedded and other similar build environments with outdated core packages to build their OS image. Thus, unless this change is backward-compatible down to e.g. xserver-core-dev >=1.3, we'd rather revert the change and implement the migration from 'git-log' to 'git log' in our own macro.
(In reply to comment #35) > Starting from which release of what package has that macro become available? > > On xf86-video-geode, we'd rather avoid bumping xserver-core-dev or similar "xserver-core-dev" is some sort of distro-specific package - you'll need to figure out which distro invented it and ask them what's in it. In packages Xorg creates & ships, XORG_CHANGELOG is in util-macros 1.2.0. As an autoconf macro, it is only needed by developers who build the raw sources from git, the person who builds the tarballs for distribution ("make dist"), and people who need to re-create configure after modifying configure.ac. It is not needed by people who build the distributed tarballs, unless they're also changing configure.ac and autoreconf'ing.
Closing as fixed. All build breaking modules (git-log) have had a patched applied. The video-radeon patch is standing-by for appropriate project timing to be applied. A big thank you for all of those who helped me with this piece of maintenance.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.