Hello all: Just a quick email to submit to the group. I needed to build a distro to include Webmin. The version that comes with OpenEmbedded (webmin 1.850) in meta-webserver/recipes-webadmin/webmin is kind of an old release, and there were issues with the build.
Below is a new recipe: webmin_1.962.bb (Attached MD5: 301394DDA264C712C1BF9496D409D3CF) Just add "webmin" to your local.conf to add it to your distro. You can also override the default username and password in local.conf if desired. One issue...the "do_package" for Webmin takes around 25 minutes on my machine. Almost as long as the kernel. :) I'm not sure why. It's one of the things I need to look into. Once built, you can go into the configuration and add any additional modules you wish. The utility will list them for you and download them from the Webmin site. This recipe builds on the previous work, adds basic modules and themes to the build, and updates some of the build dependencies. Also...in order to build this package, another recipe needs modification. I have not created a patch file for this yet. I'm not sure it would be appropriate as this library is kind of in limbo...but I did update the recipe to download the latest version of the file: libcgi-perl_4.51.bb (OpenEmbedded > meta-perl-recipes-perl/libcgi) (Attached MD5: 0126F5119E9AA358C461ABC5BF777450) Basically this recipe downloads the latest version of the library as Webmin depends on it. Hope these help. I will get patches made up and submitted soon. -Joe Warped Electronics
DESCRIPTION = "CGI.pm is a stable, complete and mature solution for processing and preparing \ HTTP requests and responses. Major features including processing form \ submissions, file uploads, reading and writing cookies, query string generation \ and manipulation, and processing and preparing HTTP headers." HOMEPAGE = "https://metacpan.org/pod/CGI" SECTION = "libs" LICENSE = "Artistic-2.0 | GPL-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=415fc49abed2728f9480cd32c8d67beb" SRC_URI = "https://cpan.metacpan.org/authors/id/L/LE/LEEJO/CGI-${PV}.tar.gz" SRC_URI[md5sum] = "87b6cf5bc68739c9310ca501adad998e" SRC_URI[sha256sum] = "0bd215e7012f9f52e6a7d3fe695ee30ef959d796e8e53472fa0ed8c53fba600a" S = "${WORKDIR}/CGI-${PV}" inherit cpan ptest-perl RDEPENDS_${PN} += "\ libhtml-parser-perl \ perl-module-base \ perl-module-deprecate \ perl-module-if \ " do_install_prepend() { # requires "-T" (taint) command line option rm -rf ${B}/t/push.t rm -rf ${B}/t/utf8.t # tests building of docs rm -rf ${B}/t/compiles_pod.t } RDEPENDS_${PN}-ptest += " \ libtest-deep-perl \ libtest-warn-perl \ perl-module-bytes \ perl-module-file-find \ perl-module-filehandle \ perl-module-findbin \ perl-module-lib \ perl-module-perlio \ perl-module-perlio-scalar \ perl-module-test-more \ perl-module-utf8 \ " RPROVIDES_${PN} += "perl-module-cgi" BBCLASSEXTEND = "native"
SUMMARY = "Web-based administration interface" HOMEPAGE = "http://www.webmin.com" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENCE;md5=0a6446108c96d0819d21e40b48109507" SRC_URI = "${SOURCEFORGE_MIRROR}/webadmin/webmin-${PV}.tar.gz \ file://setup.sh \ file://init-exclude.patch \ file://remove-startup-option.patch \ file://nfs-export.patch \ file://exports-lib.pl.patch \ file://mount-excludefs.patch \ file://samba-config-fix.patch \ file://proftpd-config-fix.patch \ file://media-tomb.patch \ file://remove-python2.3.patch \ file://mysql-config-fix.patch \ file://webmin.service \ " SRC_URI[md5sum] = "d74d14ee5467fc95d283b1578b0ef622" SRC_URI[sha256sum] = "357642af9d753435e999adfe40772b998bfcb21852993081239948e9216bc6fd" UPSTREAM_CHECK_URI = "http://www.webmin.com/download.html" UPSTREAM_CHECK_REGEX = "webmin-(?P<pver>\d+(\.\d+)+).tar.gz" inherit perlnative update-rc.d systemd do_configure() { # Remove binaries and plugins for other platforms rm -rf acl/Authen-SolarisRBAC-0.1* rm -rf format bsdexports hpuxexports sgiexports rm -rf zones rbac smf ipfw ipfilter dfsadmin rm -f mount/freebsd-mounts* mount/netbsd-mounts* rm -f mount/openbsd-mounts* mount/macos-mounts* # Remove some plugins for the moment rm -rf lilo frox wuftpd telnet pserver cpan shorewall webalizer cfengine fsdump pap rm -rf majordomo fetchmail sendmail mailboxes procmail filter mailcap dovecot exim spam qmailadmin postfix rm -rf stunnel squid sarg pptp-client pptp-server jabber openslp sentry cluster-* vgetty burner heartbeat # Adjust configs [ -f init/config-debian-linux ] && mv init/config-debian-linux init/config-generic-linux sed -i "s/shutdown_command=.*/shutdown_command=poweroff/" init/config-generic-linux echo "exclude=bootmisc.sh,single,halt,reboot,hostname.sh,modutils.sh,mountall.sh,mountnfs.sh,networking,populate-volatile.sh,rmnologin.sh,save-rtc.sh,umountfs,umountnfs.sh,hwclock.sh,checkroot.sh,banner.sh,udev,udev-cache,devpts.sh,psplash.sh,sendsigs,fbsetup,bootlogd,stop-bootlogd,sysfs.sh,syslog,syslog.busybox,urandom,webmin,functions.initscripts,read-only-rootfs-hook.sh" >> init/config-generic-linux echo "excludefs=devpts,devtmpfs,usbdevfs,proc,tmpfs,sysfs,debugfs" >> mount/config-generic-linux [ -f exports/config-debian-linux ] && mv exports/config-debian-linux exports/config-generic-linux sed -i "s/killall -HUP rpc.nfsd && //" exports/config-generic-linux sed -i "s/netstd_nfs/nfsserver/g" exports/config-generic-linux # Fix insane naming that causes problems at packaging time (must be done before deleting below) find . -name "*\**" | while read from do to=`echo "$from" | sed "s/*/ALL/"` mv "$from" "$to" done # Remove some other files we don't need find . -name "config-*" -a \! -name "config-generic-linux" -a \! -name "config-ALL-linux" -a \! -name "*.pl" -delete find . -regextype posix-extended -regex ".*/(openserver|aix|osf1|osf|openbsd|netbsd|freebsd|unixware|solaris|macos|irix|hpux|cygwin|windows)-lib\.pl" -delete rm -f webmin-gentoo-init webmin-caldera-init webmin-debian-pam webmin-pam # Don't need these at runtime (and we have our own setup script) rm -f setup.sh rm -f setup.pl # Use pidof for finding PIDs sed -i "s/find_pid_command=.*/find_pid_command=pidof NAME/" config-generic-linux } WEBMIN_LOGIN ?= "admin" WEBMIN_PASSWORD ?= "password" do_install() { install -d ${D}${sysconfdir} install -d ${D}${sysconfdir}/webmin install -d ${D}${sysconfdir}/init.d install -m 0755 webmin-init ${D}${sysconfdir}/init.d/webmin install -d ${D}${systemd_unitdir}/system install -m 0644 ${WORKDIR}/webmin.service ${D}${systemd_unitdir}/system sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \ ${D}${systemd_unitdir}/system/webmin.service install -d ${D}${localstatedir} install -d ${D}${localstatedir}/webmin install -d ${D}${libexecdir}/webmin cd ${S} || exit 1 tar --no-same-owner --exclude='./patches' --exclude='./.pc' -cpf - . \ | tar --no-same-owner -xpf - -C ${D}${libexecdir}/webmin rm -f ${D}${libexecdir}/webmin/webmin-init rm -f ${D}${libexecdir}/webmin/ajaxterm/ajaxterm/configure.initd.gentoo rm -rf ${D}${libexecdir}/webmin/patches # Run setup script export perl=perl export perl_runtime=${bindir}/perl export prefix=${D} export tempdir=${S}/install_tmp export wadir=${libexecdir}/webmin export config_dir=${sysconfdir}/webmin export var_dir=${localstatedir}/webmin export os_type=generic-linux export os_version=0 export real_os_type="${DISTRO_NAME}" export real_os_version="${DISTRO_VERSION}" export port=10000 export login=${WEBMIN_LOGIN} export password=${WEBMIN_PASSWORD} export ssl=0 export atboot=1 export no_pam=1 mkdir -p $tempdir ${S}/../setup.sh # Ensure correct PERLLIB path sed -i -e 's#${D}##g' ${D}${sysconfdir}/webmin/start } INITSCRIPT_NAME = "webmin" INITSCRIPT_PARAMS = "start 99 5 3 2 . stop 10 0 1 6 ." SYSTEMD_SERVICE_${PN} = "webmin.service" SYSTEMD_AUTO_ENABLE_${PN} = "enable" #- Modules we want to install initially PACKAGES += "${PN}-module-acl ${PN}-module-backup-config ${PN}-module-certmgr ${PN}-module-change-user ${PN}-module-cpan ${PN}-module-cron " PACKAGES += "${PN}-module-net ${PN}-module-passwd ${PN}-module-proc ${PN}-module-shell ${PN}-module-status ${PN}-module-system-status " PACKAGES += "${PN}-module-useradmin ${PN}-module-webmin ${PN}-theme-authentic-theme ${PN}-theme-blue-theme ${PN}-theme-gray-theme" #- Known Perl modules requred for Webmin and installed modules RDEPENDS_${PN} += "perl perl-module-socket perl-module-exporter perl-module-exporter-heavy perl-module-carp perl-module-strict perl-module-warnings" RDEPENDS_${PN} += "perl-module-xsloader perl-module-posix perl-module-autoloader perl-module-fcntl perl-module-tie-hash perl-module-vars perl-module-cgi" RDEPENDS_${PN} += "perl-module-time-local perl-module-config perl-module-constant perl-module-file-glob perl-module-file-copy perl-module-sdbm-file" RDEPENDS_${PN} += "perl-module-feature perl-module-file-basename perl-module-file-path perl-module-cwd perl-module-file-spec perl-module-file-spec-unix" #- Known Linux requirementsf or Webmin Modules RDEPENDS_${PN}-module-proc = "procps" #- Additional requirements DEPENDS += "libnet-ssleay-perl libcgi-perl openssl" PACKAGES_DYNAMIC += "webmin-module-* webmin-theme-*" RRECOMMENDS_${PN} += "webmin-module-system-status" python populate_packages_prepend() { import os, os.path wadir = bb.data.expand('${libexecdir}/webmin', d) wadir_image = bb.data.expand('${D}', d) + wadir modules = [] themes = [] for mod in os.listdir(wadir_image): modinfo = os.path.join(wadir_image, mod, "module.info") themeinfo = os.path.join(wadir_image, mod, "theme.info") if os.path.exists(modinfo): modules.append(mod) elif os.path.exists(themeinfo): themes.append(mod) do_split_packages(d, wadir, '^(%s)$' % "|".join(modules), 'webmin-module-%s', 'Webmin module for %s', extra_depends='perl', allow_dirs=True, prepend=True) do_split_packages(d, wadir, '^(%s)$' % "|".join(themes), 'webmin-theme-%s', 'Webmin theme for %s', extra_depends='perl', allow_dirs=True, prepend=True) } # Time-savers package_do_pkgconfig() { : }
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#51651): https://lists.yoctoproject.org/g/yocto/message/51651 Mute This Topic: https://lists.yoctoproject.org/mt/78740786/21656 Group Owner: yocto+ow...@lists.yoctoproject.org Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-