On the packaging of ldraw-parts and ldraw-mklist


RE: On the packaging of ldraw-parts and ldraw-mklist
#7
(2019-09-16, 16:23)Sylvain Corlay Wrote: 1. mklist

- The mklist package does not build out of the box. Everyone (FreeBSD, Debian, ArchLinux) appears to be applying the same patches to the makefile and sources so that it builds succesfully (and I had to do so as well). It may be worth including these patches upstream and bump the version of mklist which has not been updated in a while. If the package was hosted on GitHub or GitLab, it may be easier to submit patches back.

For reference, here is the patch that I've been applying to the Debian package since 2014:

Code:
--- a/mklist.c
+++ b/mklist.c
@@ -44,6 +44,7 @@
#include "alloc.h"
#include "dir.h"
#include "conio.h"
+#include <libgen.h>

char   *ProgVer = "mklist  v1.6 20100706  (C) 1999-2010 Lars C. Hassing  [email protected]";

@@ -53,8 +54,8 @@ int    quiet = 0;

/*****************************************************************/
/* Filename length compatibility stuff */
/*****************************************************************/
-#ifndef _MAX_PATH
-#define _MAX_PATH 256
+#ifndef MAX_PATH
+#define MAX_PATH 256
#endif
char    shortfilepath[MAX_PATH];
char    shortfilename[MAX_PATH];
@@ -84,7 +85,7 @@ int     namelen = 25; /* LSC specs allow 25
int GetShortPathName(char *longpath, char * shortpath, int psize)
{
     strncpy(shortpath, longpath, psize);
-    return(strlen(shortpath);
+    return(strlen(shortpath));
}
#endif

Please consider applying that patch and shipping it in the official release zip because otherwise mklist doesn't compile as it contains syntax errors and other typos and all consumers like Debian, Conda, FreeBSD, Arch or Fedora need to apply the same patch.

(2019-09-16, 16:23)Sylvain Corlay Wrote: - The mklist source tarball is included in the parts zip file, including built artefacts for windows. Since it is a very simple program, I think that it is fine to provide a built executable on the website, although the parts library and mklist may be better separated.

In fact, mklist.c is included three times. mklist-c.zip contains version 1.3, mklist1_4.zip contains version 1.4, mklist1_6.zip contains 1.6. Versions 1.3 and 1.4 could be dropped from the release and 1.6 needs to get fixed so that it compiles.

(2019-09-16, 16:23)Sylvain Corlay Wrote: - Quick note if anyone on this forum is involved in the debian packaging: the version number for the ldraw-mklist debian package appears to be the same as for parts library, while it should really be 1.6.

I'm of the impression that the mklist utility doesn't really get the attention it deserves and I didn't feel like spending the extra effort to make the Debian package version be the same as the utility version if the authors of the utility have not provided an update since 2010 and still ship uncompilable code.

(2019-09-16, 16:23)Sylvain Corlay Wrote: 2. Persistent source tarballs for the parts library

It seems that with every update of the parts library, the new parts are uploaded in a separate zip file, while the complete.zip file is overwritten with the new version of the full library.
This may be an issue because old versions of complete.zip are not available anymore and we can't use a persistent URL for a given version. If you kept a complete-????.zip around for each release, we would be able to point to it persistently.

This seems to be fixed now with the 2301 release as lcad2301.zip seems to be bit-by-bit identical to complete.zip. I changed the Debian packaging to use lcad2301.zip as the source instead of using complete.zip.

If you are using for old releases for reproducible build purposes, you can find those on snapshot.debian.org:

http://snapshot.debian.org/package/ldraw-parts/
Reply
« Next Oldest | Next Newest »



Messages In This Thread
RE: On the packaging of ldraw-parts and ldraw-mklist - by Johannes Schauer - 2023-04-13, 5:34

Forum Jump:


Users browsing this thread: 1 Guest(s)