Opened 10 years ago

Closed 10 years ago

#3761 closed defect (fixed)

perl build is broken

Reported by: anonymous Owned by: developers
Priority: highest Milestone: Kamikaze 8.09
Component: packages Version:
Keywords: Cc: matteo, florian


Attachments (1)

perl.patch (1.0 KB) - added by pqa <quentin@…> 9 years ago.
Patch for Makefile and

Download all attachments as: .zip

Change History (6)

comment:1 Changed 10 years ago by pqa <quentin@…>

Is this the same issue as tickets 3743 and 3746?

comment:2 Changed 10 years ago by blogic

  • Milestone set to Kamikaze 808

comment:3 Changed 10 years ago by pqa <quentin@…>

If the problem I reported under ticket #3746 is the same as this problem, then it relates to the following.

As configured, in order to build perl, the packages db, gdbm and libxml2 need to be included in the build environment, so there need to be links from the trunk/package subdirectory for db, gdbm and libxml2 to packages/libs/db, packages/libs/gdbm and packages/libs/libxml2 respectively. This then enables perl to build.

There appear to be some errors/inconsistencies in the file in the perl package. If the links referred to in the previous paragraph do not exist, then running "make menuconfig" produces the following errors:
tmp/ 'select' used by config symbol 'PACKAGE_perlbase-db' refer to undefined symbol 'PACKAGE_libdb'
tmp/ 'select' used by config symbol 'PACKAGE_perlbase-db-file' refer to undefined symbol 'PACKAGE_libdb'

The relevant lines from tmp/ are (from line 6115):

config PACKAGE_perlbase-db

tristate "perlbase-db...........................................

.... DB perl module"

default y if DEFAULT_perlbase-db
default m if ALL
depends PACKAGE_perl
select PACKAGE_libdb

DB perl module

config PACKAGE_perlbase-db-file

tristate "perlbase-db-file.....................................

DB_File perl module"

default y if DEFAULT_perlbase-db-file
default m if ALL
depends PACKAGE_perl
select PACKAGE_libdb

DB_File perl module

Applying the following patch to packages/lang/perl/ stops the error messages when running "make menuconfig":
--- (revision 11995)
+++ (working copy)
@@ -382,7 +382,7 @@

define Package/perlbase-db
$(call Package/perlbase-template)
TITLE:=DB perl module

-DEPENDS+= +libdb


define Package/perlbase-db/install

@@ -395,7 +395,7 @@

define Package/perlbase-db-file
$(call Package/perlbase-template)
TITLE:=DB_File perl module



define Package/perlbase-db-file/install


I do not understand the syntax of the buildroot Makefiles (especially when to use +s and :s in the DEPENDS definitions), and so the above patch may not be making the appropriate changes. However, the effect of the above patch is that "make menuconfig" does not report any errors, but when running make menuconfig, under the lang/perl option, when perl is enabled, perlbase-db perlbase-db-file and perlbase-gdbm are not offered unless the libs/db and libs/gdbm options respectively are enabled, whereas perhaps selection of, for example, perlbase-db should automatically select libs/db.

The above deals with the menuconfig issues, but there are also problems subsequent to the above in respect of building perl. The packages libs/db libs/gdbm and libs/libxml2 have to have links from the trunk/package directory (as mentioned earlier), otherwise there are compilation errors. My suspicion is that the Makefile for perl (and possibly some of the source code) need modification so that if the db, db-file and gdbm options are not selected, then the packages are not compiled, and perl can still be linked. I will look further into this, and provide further updates if I can understand what changes need to be made.

comment:4 Changed 10 years ago by anonymous

is this now fixed?

comment:5 Changed 10 years ago by blogic

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

Changed 9 years ago by pqa <quentin@…>

Patch for Makefile and

Add Comment

Modify Ticket

as closed .
The resolution will be deleted. Next status will be 'reopened'.

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.