Pages

Monday, May 26, 2008

Sync zmodem code makes packages non-free

Due to issues with the zmodem code, it may also be more appropriate for it to be in non-free.
* Update debian/control to reflect being non-free due to current zmodem code. (r159)
* Update debian/copyright regarding zmodem files for Synchronet. (r160)(r150)

Sunday, May 25, 2008

MBSE BBS packaging updates

Commited the following changes to the local MBSE BBS SVN repository.

  • Initial version of debian/control. (r17)
  • Initial version of debian/TODO. (rev 16)
  • Install example files to package. (rev 15)
  • Change distribution to UNRELEASED in debian/changelog. (rev 14)
  • Will be creating man pages dynamically. (rev 13)
  • Plan to use the debian/post* & debian/pre* scripts.
  • Initial version of debian/cron.d. (rev 11)
  • Initial version of debian/init.d. (rev 10)
  • By default, installation goes to /opt. (rev 9)
  • Initial cleanup of debian/rules. (rev 8)

Thursday, May 8, 2008

SBBS default 'TempDirectory' is not set

The Temp Directory variable in ctrl/sbbs.ini is not set by default but Synchronet assumes it is the only user of the directory. Install directory? Provide in an example sbbs.ini file?
Install /opt/syncrhonet/temp directory: add directory to debian/dirs (r183) Add Lintian override for temp directory (r184).
Add example sbbs.ini file with the Temp Directory variable set to /opt/synchronet/temp. (r185)

SBBS: Warnings from dpkg-shlibdeps, Part 2

Warnings during a test package build: dpkg-shlibdeps: warning: format of `NEEDED libnspr4.so' not recognized
As noted in a prevsious entry about this: Per , that is an issue with the _name_ of the library file rather then with the file itself. Esp. seems to expect a version number in a particular format as part of the name.

SBBS: Lintian errors: unusual-interpreter

Lintian warning "unusual-interpreter" on two files in /opt/synchronet/exec:
* unusual-interpreter ./opt/synchronet/exec/gnats_cvs.js #!/sbbs/exec/jsexec
* unusual-interpreter ./opt/synchronet/exec/sendmail.js #!/sbbs/exec/jsexec
The Interpreter path is incorrect; should be /opt/synchronet/exec for the debian package instead of /sbbs/exec as it is distributed. it's parameter path for ctrl is also incorrect. It is not being set in the build. Use something like dpatch to correct?
Register jsexec as a valid interpreter? That would not help with the lintian error itself; create an override for it.
Since the files are not being updated during the build & an original source archive is already being created after downloads of the source & runtime, could just make the change to referencing the correct path as part of creating the Debian original source archive.
In the original files exec/gnats_cvs.js and exec/sendmail.js in the original archive: corrected the first line from being
> #!/sbbs/exec/jsexec -x -c /sbbs/ctrl
to being
> #!/opt/synchronet/exec/jsexec -x -c /opt/synchronet/ctrl
Added a note about it to debian/README.source (r176).
Added lintian overrides for the issue (r177). Corrected the file paths in the files in the original source archive. Added a note about doing that to debian/README.source (r176). Added Lintian overrides for jsexec (r177).

Monday, May 5, 2008

SBBS: Lintian overrides file issues

Package checker (lintian) is not seeing overrides file when checking a binary package. A debian/source.lintian-overrides file is present in the source package but is not being installed with the binary package. Also found other issues with it.
* Adding installation of Lintian overrides file to binary package into debian/rules (r125):
> install -c -m 444 debian/synchronet.lintian-overrides debian/synchronet/usr/share/lintian/overrides/synchronet
* Checked examples from other packages and it also looks like i have the lintian overrides file named incorrectly; it should be synchronet.lintian-overrides instead of source.lintian-overrides. Corrected name of lintian overrides file in debian the directory. (r123)
* Added lintian overrides directory to debian/dirs. (r130)
* Lintian override lines not formated correctly: correct lintian override lines. (r133)

rpath issue for SBBS?

Added JSLIBDIR, NSPRDIR, & CRYPTLIBDIR to 'make sbbs3' line in debian/rules (r131). The correct paths are added in a v3.14a build but are being added to the current directory rather than being added by themselves. (That issue looks like it is corrected in the current v3.15a version.)
Two possible ways to fix this:
* Use chrpath to just set the correct paths directly. This would need to be done for each executable that needs it.
* Fix the make file src/sbbs3/GNUmakefile directly (line 116). This could be done using something like dpatch.
Because one of the paths (5 total) being set is a private library, can't/shouldn't delete the whole thing: the first path is the for the SBBS exec directory. The 2nd is set by the variable LIBODIR. The 3rd is for the mozjs library, JSLIBDIR The 4th is for the nspr library, NSPRDIR. And the 5th is for cryptlib, CRYPTLIBDIR.
LIBODIR is the library build output directory; not needed for the package. Since all of the rest is the standard library directory, only actually need the /opt/synchronet/exec directory?
The issue is that "$(PWD" is included in the line (116) that defines the RPATH:
> LD_RUN_PATH := $(SBBSDIR)/exec:$(PWD)/$(LIBODIR):$(PWD)/$(JSLIBDIR):$(PWD)/$(NSPRDIR):$(PWD)/$(CRYPTLIBDIR)
That was fixed for v3.15a (current CVS). Since have to create a original archive anyway (source + runtime), that can be edited before being used (& a note about it added to debian/README.source).

Saturday, May 3, 2008

Default ctrl/ directory for SBBS?

In the case of synchronet/ctrl/*; debian packaging does have the idea of a conffile (configuration file), which is treated differently by the package installer. If a list of such files is provided in the package, the installer checks them before running the postinst script: "If neither the user nor the package maintainer has changed the file, it is left alone. If one or the other has changed their version, then the changed version is preferred".
Now, up until now I've been thinking to avoid the whole issue by installing ctrl/* to /usr/share/synchronet/ctrl & using a copy of that at (now) /opt/synchronet/ctrl (because of the number of files in ctrl/*, & also because I wasn't using a default installation directory); initiially by advising to do a manual copy, later by doing it in the postinst script. But if the postinst script handles the copy, there still needs to be a way to determine if a config file needs to be copied or not; and if that is going to be done in an automated way, may as well take advantage of the existing automated handling of such files... (I still like the idea of having unaltered copies available as a reference, but that can be taken care of by putting them in an examples directory.)
Change to using /opt/synchronet/ctrl as the default ctrl/* directory. (r119)

SBBS Debian ITP Update

Updated the [Debian ITP](# 418776), as follows:

Switched back to working on initial packaging for v3.14a after being advised of a usable source archive for that version. A 'package source archive' still needs to be created because that 'source archive' does not include the runtime files and directories, only the source; but it does compile.