* betoh64 @ 2013-03-07 19:28 Thomas Klausner 2013-05-19 23:56 ` betoh64 Ingo Schwarze 0 siblings, 1 reply; 3+ messages in thread From: Thomas Klausner @ 2013-03-07 19:28 UTC (permalink / raw) To: discuss Hi! The latest release, 1.12.1, from last March doesn't build on NetBSD because of apropos_db.c: In function ‘btree_read’: apropos_db.c:181:2: warning: implicit declaration of function ‘betoh64’ ... cc -o apropos apropos.o apropos_db.o manpath.o libmandoc.a apropos_db.o: In function `btree_read': /tmp/mdocml-1.12.1/apropos_db.c:181: undefined reference to `betoh64' /tmp/mdocml-1.12.1/apropos_db.c:182: undefined reference to `betoh64' *** Error code 1 config.h just has #if defined(__APPLE__) # define htobe32(x) OSSwapHostToBigInt32(x) # define betoh32(x) OSSwapBigToHostInt32(x) # define htobe64(x) OSSwapHostToBigInt64(x) # define betoh64(x) OSSwapBigToHostInt64(x) #elif defined(__linux__) # define betoh32(x) be32toh(x) # define betoh64(x) be64toh(x) #endif and the Makefile assumes this macro must exist. I saw on cvsweb that the current source does not contain the file apropos_db.c any longer. Does anyone have a patch for 1.12.1? Or is it perhaps time for an 1.13 release? Cheers, Thomas -- To unsubscribe send an email to discuss+unsubscribe@mdocml.bsd.lv ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: betoh64 2013-03-07 19:28 betoh64 Thomas Klausner @ 2013-05-19 23:56 ` Ingo Schwarze 2013-05-20 9:52 ` betoh64 Thomas Klausner 0 siblings, 1 reply; 3+ messages in thread From: Ingo Schwarze @ 2013-05-19 23:56 UTC (permalink / raw) To: discuss Hi Thomas, Thomas Klausner wrote on Thu, Mar 07, 2013 at 08:28:24PM +0100: > The latest release, 1.12.1, from last March doesn't build on NetBSD > because of > apropos_db.c: In function ???btree_read???: > apropos_db.c:181:2: warning: implicit declaration of function ???betoh64??? > ... > cc -o apropos apropos.o apropos_db.o manpath.o libmandoc.a > apropos_db.o: In function `btree_read': > /tmp/mdocml-1.12.1/apropos_db.c:181: undefined reference to `betoh64' > /tmp/mdocml-1.12.1/apropos_db.c:182: undefined reference to `betoh64' > *** Error code 1 > > config.h just has > #if defined(__APPLE__) > # define htobe32(x) OSSwapHostToBigInt32(x) > # define betoh32(x) OSSwapBigToHostInt32(x) > # define htobe64(x) OSSwapHostToBigInt64(x) > # define betoh64(x) OSSwapBigToHostInt64(x) > #elif defined(__linux__) > # define betoh32(x) be32toh(x) > # define betoh64(x) be64toh(x) > #endif > > and the Makefile assumes this macro must exist. That alone ought to be easy enough to fix. NetBSD certainly has some macros and functions to convert between network and host ordering and these just need to be plugged in. > I saw on cvsweb that the current source does not contain the file > apropos_db.c any longer. > > Does anyone have a patch for 1.12.1? > > Or is it perhaps time for an 1.13 release? Oh what a mess, here is the much bigger problem. In June 2012, Kristaps ripped out the db(3) backend of the apropos database, plugged in an sqlite3(1) backend, then vanished (real life is sometimes inconvenient). I had a brief look at it, didn't find the time to properly integrate it into OpenBSD, then real life distracted me as well. So now we have a bsd.lv HEAD that's basically untested, out of sync from OpenBSD, and not suited to make a release. The perfect solution would be to first properly integrate the sqlite3(1) stuff into OpenBSD, make sure it works well in practice, let the dust settle and then make a release using the sqlite3(1) backend. But i don't think i will come round to that soon, it's too big a project for my spare time. The main files affected are: - apropos.c - apropos_db.c - apropos_db.h - mandocdb.c - mandocdb.h - manpage.c - manpath.c - mansearch.c - mansearch.h - read.c What else can we do? * Revert the sqlite3(1) stuff and move it to an experimental branch, that way resynching to OpenBSD such that we can make a release containing well-tested code? * Leave the sqlite3(1) stuff in as it is, hope that nobody really relies on mandocdb(8) yet, make sure everything except mandocdb(8) is well in sync with OpenBSD, and just make a release anyway? Given that NetBSD has mdocml in ports and not in base, a release is needed, directly synching with OpenBSD does not look viable. Relying on proper upstream releases is not even a bad idea when porting software. (For OpenBSD, the situation is somewhat different because i do much of mandoc development in the OpenBSD tree, so it's not a port here but part of the base system. But that's not the case for NetBSD or FreeBSD.) Just telling people to continue working with 1.12.1 is not an option either. That's now more than a year old, lacking lots of bug fixes and -Tman is frankly unusable in that version. For a working -Tman, you really need OpenBSD -current or bsd.lv HEAD, so a release is definitely needed. Yours, Ingo -- To unsubscribe send an email to discuss+unsubscribe@mdocml.bsd.lv ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: betoh64 2013-05-19 23:56 ` betoh64 Ingo Schwarze @ 2013-05-20 9:52 ` Thomas Klausner 0 siblings, 0 replies; 3+ messages in thread From: Thomas Klausner @ 2013-05-20 9:52 UTC (permalink / raw) To: discuss Hi Ingo! On Mon, May 20, 2013 at 01:56:49AM +0200, Ingo Schwarze wrote: > Thomas Klausner wrote on Thu, Mar 07, 2013 at 08:28:24PM +0100: > > config.h just has > > #if defined(__APPLE__) > > # define htobe32(x) OSSwapHostToBigInt32(x) > > # define betoh32(x) OSSwapBigToHostInt32(x) > > # define htobe64(x) OSSwapHostToBigInt64(x) > > # define betoh64(x) OSSwapBigToHostInt64(x) > > #elif defined(__linux__) > > # define betoh32(x) be32toh(x) > > # define betoh64(x) be64toh(x) > > #endif > > > > and the Makefile assumes this macro must exist. > > That alone ought to be easy enough to fix. > NetBSD certainly has some macros and functions > to convert between network and host ordering > and these just need to be plugged in. I found, in sys/endian.h: #define be16toh(x) htobe16(x) #define be32toh(x) htobe32(x) #define be64toh(x) htobe64(x) #define le16toh(x) htole16(x) #define le32toh(x) htole32(x) #define le64toh(x) htole64(x) so perhaps it's just a missing header after all. > What else can we do? > > * Revert the sqlite3(1) stuff and move it to an experimental branch, > that way resynching to OpenBSD such that we can make a release > containing well-tested code? > > * Leave the sqlite3(1) stuff in as it is, hope that nobody > really relies on mandocdb(8) yet, make sure everything > except mandocdb(8) is well in sync with OpenBSD, and just > make a release anyway? NetBSD's not using mdocml's apropos, but its own, so from my POV, even the last option is fine. > Given that NetBSD has mdocml in ports and not in base That's not correct, NetBSD has mdocml in base even in NetBSD-6. But we don't develop that version, we just import releases. > a release > is needed, directly synching with OpenBSD does not look viable. > Relying on proper upstream releases is not even a bad idea when > porting software. (For OpenBSD, the situation is somewhat > different because i do much of mandoc development in the OpenBSD > tree, so it's not a port here but part of the base system. > But that's not the case for NetBSD or FreeBSD.) > > Just telling people to continue working with 1.12.1 is not an > option either. That's now more than a year old, lacking lots of > bug fixes and -Tman is frankly unusable in that version. > For a working -Tman, you really need OpenBSD -current or > bsd.lv HEAD, so a release is definitely needed. I'd definitely like to have a version with working -Tman... so I'd say go for the version that can be achieved more quickly. :) Thomas -- To unsubscribe send an email to discuss+unsubscribe@mdocml.bsd.lv ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-05-20 9:52 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2013-03-07 19:28 betoh64 Thomas Klausner 2013-05-19 23:56 ` betoh64 Ingo Schwarze 2013-05-20 9:52 ` betoh64 Thomas Klausner
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 NNTP newsgroup(s).