Merge pull request #10088 from suvari/master

new packages: nfs-utils, libgssglue, rpcbind
This commit is contained in:
Kamil ATLI
2022-03-11 20:45:19 +03:00
committed by GitHub
26 changed files with 3434 additions and 967 deletions
+24
View File
@@ -0,0 +1,24 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import get
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
def setup():
autotools.configure("--disable-static \
--with-pic")
def build():
autotools.make()
def check():
autotools.make("check")
def install():
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
pisitools.dodoc("ChangeLog", "AUTHORS", "README")
@@ -0,0 +1,15 @@
Index: libgssglue-0.1/doc/gssapi_mech.conf
===================================================================
--- libgssglue-0.1.orig/doc/gssapi_mech.conf
+++ libgssglue-0.1/doc/gssapi_mech.conf
@@ -15,7 +15,8 @@
# library initialization function
# ================================ ==========================
# The MIT K5 gssapi library, use special function for initialization.
-/usr/lib/libgssapi_krb5.so mechglue_internal_krb5_init
+libgssapi_krb5.so.2 mechglue_internal_krb5_init
#
# The SPKM3 gssapi library function. Use the function spkm3_gss_initialize.
-# /usr/local/gss_mechs/spkm/spkm3/libgssapi_spkm3.so spkm3_gss_initialize
+# libgssapi_spkm3.so spkm3_gss_initialize
+
+50
View File
@@ -0,0 +1,50 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>libgssglue</Name>
<Homepage>http://www.citi.umich.edu/projects/nfsv4/linux/</Homepage>
<Packager>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Packager>
<License>BSD</License>
<IsA>library</IsA>
<Summary>exports a gssapi interface which calls other random gssapi libraries</Summary>
<Description>libgssglue provides a gssapi interface, but does not implement any gssapi mechanisms itself; instead it calls other gssapi functions (e.g., those provided by MIT Kerberos), depending on the requested mechanism, to do the work. </Description>
<Archive sha1sum="a8edc4f6a1d4dcd80ad52d18226fc65fa8850af1" type="targz">http://www.citi.umich.edu/projects/nfsv4/linux/libgssglue/libgssglue-0.4.tar.gz</Archive>
<Patches>
<Patch level="1">libgssglue-0.1-gssglue.patch</Patch>
</Patches>
</Source>
<Package>
<Name>libgssglue</Name>
<Files>
<Path fileType="library">/usr/lib/libgssglue.so*</Path>
<Path fileType="doc">/usr/share/doc</Path>
</Files>
</Package>
<Package>
<Name>libgssglue-devel</Name>
<Summary>libgssglue development files</Summary>
<RuntimeDependencies>
<Dependency release="current">libgssglue</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include</Path>
<Path fileType="data">/usr/lib/pkgconfig</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2022-03-10</Date>
<Version>0.4</Version>
<Comment>First release</Comment>
<Name>Kamil Atlı</Name>
<Email>suvari@pisilinux.org</Email>
</Update>
</History>
</PISI>
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>libgssglue</Name>
<Summary xml:lang="tr">Diğer raslantısal gssapi kitaplıklarına çağrı yapan gssapi arayüzünü dışa aktaran kitaplık</Summary>
<Description xml:lang="tr">libgssglue herhangi bir gssapi mekanizma gerçekleştirimi yapmadan istenilen mekanizmaya bakarak diğer gssapi fonsiyonlarına (örn:MIT Kerberos tarafından sağlanan) ulaşabilmek için bir arayüz (API) sunar.</Description>
</Source>
<Package>
<Name>libgssglue-devel</Name>
<Summary xml:lang="tr">libgssglue geliştirme dosyaları</Summary>
</Package>
</PISI>
+48
View File
@@ -0,0 +1,48 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import get
shelltools.export("CFLAGS","%s -fpie -D_FILE_OFFSET_BITS=64" % get.CFLAGS())
shelltools.export("LDFLAGS","%s -pie" % get.LDFLAGS())
def setup():
autotools.autoreconf("-vfi")
autotools.configure("--enable-mountconfig \
--enable-ipv6 \
--enable-nfsv3 \
--enable-nfsv4 \
--enable-gss \
--with-krb5=/usr \
--with-statedir=/var/lib/nfs")
pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ")
def build():
autotools.make()
def install():
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
pisitools.dodir("/var/lib/nfs/statd/sm")
pisitools.dodir("/var/lib/nfs/statd/sm.bak")
pisitools.dodir("/var/lib/nfs/v4recovery")
pisitools.dodir("/var/lib/nfs/rpc_pipefs")
# remove conflict man file with nfs-utils
pisitools.remove("/usr/lib/pkgconfig/libnfsidmap.pc")
pisitools.remove("/usr/include/nfsidmap_plugin.h")
pisitools.remove("/usr/include/nfsidmap.h")
pisitools.remove("/usr/share/man/man5/idmapd.conf.5")
pisitools.removeDir("/usr/lib/pkgconfig")
pisitools.removeDir("/usr/include")
pisitools.insinto("/etc", "utils/mount/nfsmount.conf")
pisitools.domove("/usr/sbin/rpc.statd", "/sbin/")
pisitools.dodoc("README", "COPYING")
+118
View File
@@ -0,0 +1,118 @@
# -*- coding: utf-8 -*-
from comar.service import *
from pardus import fstabutils
import os
serviceType = "server"
serviceDesc = _({"en": "NFS Common Services",
"tr": "NFS Ortak Servisleri"})
serviceConf = "nfs"
ERR_INSMOD = _({"en": "Failed probing module %s",
"tr": "%s modülü yüklenemedi",
})
ERR_RMMOD = _({"en": "Failed removing module %s",
"tr": "%s modülü çıkarılamadı",
})
PIPEFS_MOUNTPOINT = "/var/lib/nfs/rpc_pipefs"
STATD_PIDFILE = "/run/rpc.statd.pid"
IDMAPD_PIDFILE = "/run/rpc.idmapd.pid"
GSSD_PIDFILE = "/run/rpc.gssd.pid"
# Parse the fstab file and determine whether we need gssd or not, by searching
# mount option sec=krb* in nfs mount entries.
# If none, nfs conf.d file decides if it's needed.
def need_gssd():
fstab = fstabutils.Fstab()
for entry in fstab.get_entries():
if entry.is_nfs():
if "sec=krb" in entry.get_fs_mntopts():
return True
@synchronized
def start():
startDependencies("rpcbind")
# Set the ports lockd should listen on
LOCKD_TCPPORT = config.get("LOCKD_TCPPORT")
if LOCKD_TCPPORT:
run("/sbin/sysctl -w fs.nfs.nlm_tcpport=%s" % LOCKD_TCPPORT)
LOCKD_UDPPORT = config.get("LOCKD_UDPPORT")
if LOCKD_UDPPORT:
run("/sbin/sysctl -w fs.nfs.nlm_udpport=%s" % LOCKD_UDPPORT)
# rpc.statd is first
RPCSTATD_OPTIONS = config.get("RPCSTATD_OPTIONS", "")
STATD_PORT = config.get("STATD_PORT")
if STATD_PORT:
RPCSTATD_OPTIONS += " -p %s" % STATD_PORT
startService(command="/sbin/rpc.statd",
args="%s" % RPCSTATD_OPTIONS,
donotify=True,
pidfile=STATD_PIDFILE)
if config.get("NEED_IDMAPD", "yes") == "yes" or (config.get("NEED_GSSD", "no") == "yes" or need_gssd()):
if run("/sbin/modprobe -q nfs"):
fail(ERR_INSMOD % "nfs")
# Make sure the mointpoint exists
if not os.path.exists(PIPEFS_MOUNTPOINT):
os.makedirs(PIPEFS_MOUNTPOINT)
# Check if PIPEFS_MOUNTPOINT is a real mounted fs
if run("/bin/mountpoint -q %s" % PIPEFS_MOUNTPOINT):
run("/bin/mount -t rpc_pipefs rpc_pipefs %s" % PIPEFS_MOUNTPOINT)
startService(command="/usr/sbin/rpc.idmapd",
args="-f %s" % config.get("RPCIDMAPD_OPTIONS", ""),
donotify=True,
detach=True,
makepid=True,
pidfile=IDMAPD_PIDFILE)
if config.get("NEED_GSSD", "no") == "yes" or need_gssd():
if run("/sbin/modprobe -q rpcsec_gss_krb5"):
fail(ERR_INSMOD % "rpcsec_gss_krb5")
startService(command="/usr/sbin/rpc.gssd",
args="-f %s" % config.get("RPCGSSD_OPTIONS", ""),
donotify=True,
detach=True,
makepid=True,
pidfile=GSSD_PIDFILE)
@synchronized
def stop():
LOCKD_TCPPORT = config.get("LOCKD_TCPPORT")
if LOCKD_TCPPORT:
run("/sbin/sysctl -w fs.nfs.nlm_tcpport=0")
LOCKD_UDPPORT = config.get("LOCKD_UDPPORT")
if LOCKD_UDPPORT:
run("/sbin/sysctl -w fs.nfs.nlm_udpport=0")
stopService(pidfile=GSSD_PIDFILE,
donotify=True)
stopService(pidfile=IDMAPD_PIDFILE,
donotify=True)
stopService(pidfile=STATD_PIDFILE,
donotify=True)
if not run("/bin/mountpoint -q %s" % PIPEFS_MOUNTPOINT):
run("/bin/umount %s" % PIPEFS_MOUNTPOINT)
def status():
result = isServiceRunning(STATD_PIDFILE)
if config.get("NEED_IDMAPD", "yes") == "yes":
result = result and isServiceRunning(IDMAPD_PIDFILE)
if config.get("NEED_GSSD", "no") == "yes" or need_gssd():
result = result and isServiceRunning(GSSD_PIDFILE)
return result
+130
View File
@@ -0,0 +1,130 @@
# -*- coding: utf-8 -*-
from comar.service import *
from pardus import fstabutils
import signal
import os
serviceType = "server"
serviceDesc = _({"en": "NFS Server",
"tr": "NFS Sunucusu"})
serviceConf = "nfs"
ERR_INSMOD = _({"en": "Failed probing module %s",
"tr": "%s modülü yüklenemedi",
})
PROCNFSD_MOUNTPOINT = "/proc/fs/nfsd"
RQUOTAD_PATH = "/usr/sbin/rpc.rquotad"
IDMAPD_PIDFILE = "/run/rpc.idmapd.pid"
SVCGSSD_PIDFILE = "/run/rpc.svcgssd.pid"
RQUOTAD_PIDFILE = "/run/rpc.rquotad.pid"
MOUNTD_PIDFILE = "/run/rpc.mountd.pid"
# Parse the fstab file and determine whether we need quotad or not by searching
# mount option quota in any mount entry.
# If none, nfs conf.d file decides if it's needed.
def need_quotad():
fstab = fstabutils.Fstab()
for entry in fstab.get_entries():
if "quota" in entry.get_fs_mntopts():
return True
@synchronized
def start():
startDependencies("nfs_common")
if run("/sbin/modprobe -q nfsd"):
fail(ERR_INSMOD % "nfsd")
# Check if PROCNFSD_MOUNTPOINT is mounted
if run("/bin/mountpoint -q %s" % PROCNFSD_MOUNTPOINT):
run("/bin/mount -t nfsd nfsd %s" % PROCNFSD_MOUNTPOINT)
run("/usr/sbin/exportfs -r")
# If RPCNFSDCOUNT is not explicitly defined in confd, use default one, 8 threads.
startService(command="/usr/sbin/rpc.nfsd",
args="%s %s" % (config.get("RPCNFSD_OPTIONS", ""), config.get("RPCNFSDCOUNT", "8")),
donotify=True)
if config.get("NEED_SVCGSSD", "no") == "yes":
startService(command="/usr/sbin/rpc.svcgssd",
args="-f %s" % config.get("RPCSVCGSSD_OPTIONS", ""),
donotify=True,
detach=True,
makepid=True,
pidfile=SVCGSSD_PIDFILE)
# Start rpc.rquotad daemon here if its available
if (config.get("NEED_QUOTAD", "no") == "yes" or need_quotad()) and os.path.exists(RQUOTAD_PATH):
RPCRQUOTAD_OPTIONS = config.get("RPCRQUOTAD_OPTIONS", "")
RQUOTAD_PORT = config.get("RQUOTAD_PORT")
if RQUOTAD_PORT:
RPCRQUOTAD_OPTIONS += " -p %s" % RQUOTAD_PORT
startService(command=RQUOTAD_PATH,
args="-F %s" % RPCRQUOTAD_OPTIONS,
donotify=True,
detach=True,
makepid=True,
pidfile=RQUOTAD_PIDFILE)
# Reload rpc.idmapd
if os.path.exists(IDMAPD_PIDFILE):
os.kill(int(file(IDMAPD_PIDFILE).read().strip()), signal.SIGHUP)
RPCMOUNTD_OPTIONS = config.get("RPCMOUNTD_OPTIONS", "")
MOUNTD_PORT = config.get("MOUNTD_PORT")
if MOUNTD_PORT:
RPCMOUNTD_OPTIONS += " -p %s" % MOUNTD_PORT
startService(command="/usr/sbin/rpc.mountd",
args="-F %s" % RPCMOUNTD_OPTIONS,
donotify=True,
detach=True,
makepid=True,
pidfile=MOUNTD_PIDFILE)
@synchronized
def stop():
stopService(pidfile=MOUNTD_PIDFILE,
donotify=True)
if os.path.exists(MOUNTD_PIDFILE):
os.unlink(MOUNTD_PIDFILE)
stopService(pidfile=SVCGSSD_PIDFILE,
donotify=True)
if os.path.exists(SVCGSSD_PIDFILE):
os.unlink(SVCGSSD_PIDFILE)
stopService(pidfile=RQUOTAD_PIDFILE,
donotify=True)
if os.path.exists(RQUOTAD_PIDFILE):
os.unlink(RQUOTAD_PIDFILE)
stopService(command="/usr/sbin/rpc.nfsd",
args="0",
donotify=True)
# Unexport all exported directories
run("/usr/sbin/exportfs -au")
if not run("/bin/mountpoint -q %s" % PROCNFSD_MOUNTPOINT):
run("/usr/sbin/exportfs -f %s" % PROCNFSD_MOUNTPOINT)
def reload():
# Re-export all exported directories
run("/usr/sbin/exportfs -r")
def status():
# ugly way of learning if the daemon is up and running.
result = not run("/sbin/pidof nfsd") and isServiceRunning(MOUNTD_PIDFILE)
if config.get("NEED_SVCGSSD", "no") == "yes":
result = result and isServiceRunning(SVCGSSD_PIDFILE)
if (config.get("NEED_QUOTAD", "no") == "yes" or need_quotad()) and os.path.exists(RQUOTAD_PATH):
result = result and isServiceRunning(RQUOTAD_PIDFILE)
return result
+1
View File
@@ -0,0 +1 @@
# /etc/exports: NFS file systems being exported. See exports(5).
@@ -0,0 +1,19 @@
# GSSAPI Mechanism Definitions
#
# This configuration file determines which GSS-API mechanisms
# the gssd code should use
#
# NOTE:
# The initiaiization function "mechglue_internal_krb5_init"
# is used for the MIT krb5 gssapi mechanism. This special
# function name indicates that an internal function should
# be used to determine the entry points for the MIT gssapi
# mechanism funtions.
#
# library initialization function
# ================================ ==========================
# The MIT K5 gssapi library, use special function for initialization.
/usr/lib/libgssapi_krb5.so.2 mechglue_internal_krb5_init
#
# The SPKM3 gssapi library function. Use the function spkm3_gss_initialize.
#libgssapi_spkm3.so spkm3_gss_initialize
+10
View File
@@ -0,0 +1,10 @@
[General]
Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nobody
@@ -0,0 +1,12 @@
diff -up nfs-utils-1.2.1/support/nfs/exports.c.orig nfs-utils-1.2.1/support/nfs/exports.c
--- nfs-utils-1.2.1/support/nfs/exports.c.orig 2010-01-15 10:48:49.631894982 -0500
+++ nfs-utils-1.2.1/support/nfs/exports.c 2010-01-15 11:05:02.009874055 -0500
@@ -483,7 +483,7 @@ static void fix_pseudoflavor_flags(struc
static int
parseopts(char *cp, struct exportent *ep, int warn, int *had_subtree_opt_ptr)
{
- int had_subtree_opt = 0;
+ int had_subtree_opt = 1;
char *flname = efname?efname:"command line";
int flline = efp?efp->x_line:0;
unsigned int active = 0;
@@ -0,0 +1,58 @@
diff -up nfs-utils-1.2.1/utils/statd/sm-notify.man.save nfs-utils-1.2.1/utils/statd/sm-notify.man
--- nfs-utils-1.2.1/utils/statd/sm-notify.man.save 2010-01-15 11:10:25.096874609 -0500
+++ nfs-utils-1.2.1/utils/statd/sm-notify.man 2010-01-15 11:14:12.636873981 -0500
@@ -186,7 +186,7 @@ where NSM state information resides.
If this option is not specified,
.B sm-notify
uses
-.I /var/lib/nfs
+.I /var/lib/nfs/statd
by default.
.IP
After starting,
@@ -287,13 +287,13 @@ Currently, the
command supports sending notification only via datagram transport protocols.
.SH FILES
.TP 2.5i
-.I /var/lib/nfs/sm
+.I /var/lib/nfs/statd/sm
directory containing monitor list
.TP 2.5i
-.I /var/lib/nfs/sm.bak
+.I /var/lib/nfs/statd/sm.bak
directory containing notify list
.TP 2.5i
-.I /var/lib/nfs/state
+.I /var/lib/nfs/statd/state
NSM state number for this host
.TP 2.5i
.I /proc/sys/fs/nfs/nsm_local_state
diff -up nfs-utils-1.2.1/utils/statd/statd.man.save nfs-utils-1.2.1/utils/statd/statd.man
--- nfs-utils-1.2.1/utils/statd/statd.man.save 2010-01-15 11:10:25.098906325 -0500
+++ nfs-utils-1.2.1/utils/statd/statd.man 2010-01-15 11:11:03.874769717 -0500
@@ -232,7 +232,7 @@ where NSM state information resides.
If this option is not specified,
.B rpc.statd
uses
-.I /var/lib/nfs
+.I /var/lib/nfs/statd
by default.
.IP
After starting,
@@ -368,13 +368,13 @@ As long as at least one network transpor
will operate.
.SH FILES
.TP 2.5i
-.I /var/lib/nfs/sm
+.I /var/lib/nfs/statd/sm
directory containing monitor list
.TP 2.5i
-.I /var/lib/nfs/sm.bak
+.I /var/lib/nfs/statd/sm.bak
directory containing notify list
.TP 2.5i
-.I /var/lib/nfs/state
+.I /var/lib/nfs/statd/state
NSM state number for this host
.TP 2.5i
.I /run/run.statd.pid
+76
View File
@@ -0,0 +1,76 @@
# /etc/conf.d/nfs
# If you do not set values for the NEED_ options, they will be attempted
# autodetected; this should be sufficient for most people. Valid alternatives
# for the NEED_ options are "yes" and "no".
# nfs-common options
####################
# Port rpc.statd should listen on
# Should rpc.statd listen on a specific port? This is especially useful
# when you have a port-based firewall. To use a fixed port, set this
# this variable to a valid port like: "4000".
# For more information, see rpc.statd(8)
#STATD_PORT=
# Options for rpc.statd.
#RPCSTATD_OPTIONS=
# TCP port rpc.lockd should listen on.
#LOCKD_TCPPORT=
#
# UDP port rpc.lockd should listen on.
#LOCKD_UDPPORT=
# Do you want to start the idmapd daemon? It is only needed for NFSv4.
#NEED_IDMAPD=yes
# Options for rpc.idmapd
#RPCIDMAPD_OPTIONS=
# Do you want to start the gssd daemon? It is required for Kerberos mounts.
# NFS service scripts detect NFS Kerberos mounts in /etc/fstab and starts gssd
# daemon even if this option is set to "no". This option force enables gssd
# daemon.
#NEED_GSSD=
# Options for rpc.gssd
#RPCGSSD_OPTIONS=
# nfs-server options
####################
# Options for rpc.nfsd.
#RPCNFSD_OPTIONS=
# Number of servers to start up
#RPCNFSDCOUNT=8
#Port rpc.mountd should listen on
#MOUNTD_PORT=
# Options for rpc.mountd.
# If you have a port-based firewall, you might want to set up
# a fixed port here using the --port option. For more information,
# see rpc.mountd(8)
#RPCMOUNTD_OPTIONS=
# Do you want to start the svcgssd daemon? It is only required for Kerberos
# exports. Valid alternatives are "yes" and "no"; the default is "no".
#NEED_SVCGSSD=
# Options for rpc.svcgssd.
#RPCSVCGSSD_OPTIONS=
# Do you want to start the quotad daemon? It is required for remote quotas.
# NFS service scripts detect the mount option "quota" in any mount entry and
# starts quotad daemon even if this option is set to "no". This option force
# enables quotad daemon if the 'quota' package is installed.
#NEED_QUOTAD=
#Port rpc.rquotad should listen on
#RQUOTAD_PORT=
# Options for rpc.quotad
#RPCRQUOTAD_OPTIONS=
+100
View File
@@ -0,0 +1,100 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>nfs-utils</Name>
<Homepage>http://nfs.sourceforge.net/</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<IsA>service</IsA>
<IsA>app:console</IsA>
<Summary>NFS client and server</Summary>
<Description>Contains NFS (Network File System) client and server. It is possible to mount a network resource as a file system using the NFS protocol.</Description>
<Archive sha1sum="69e5379cc767afc1a376d332a131dbd1e5afde9b" type="tarbz2">mirrors://sourceforge/nfs/nfs-utils-2.6.1.tar.bz2</Archive>
<BuildDependencies>
<Dependency>sqlite-devel</Dependency>
<Dependency>libcap-devel</Dependency>
<Dependency>libtirpc-devel</Dependency>
<Dependency>libevent-devel</Dependency>
<Dependency>e2fsprogs-devel</Dependency>
<Dependency>libgssglue-devel</Dependency>
<Dependency>mit-kerberos-devel</Dependency>
<Dependency>rpcsvc-proto-devel</Dependency>
<Dependency>tcp-wrappers-devel</Dependency>
<Dependency>device-mapper-devel</Dependency>
<Dependency>libutil-linux-devel</Dependency>
</BuildDependencies>
<Patches>
<!-- <Patch level="1">nfs-utils-1.2.1-statdpath-man.patch</Patch> -->
<!-- <Patch level="1">nfs-utils-1.2.1-exp-subtree-warn-off.patch</Patch> -->
<!-- <Patch level></Patch> -->
</Patches>
</Source>
<Package>
<Name>nfs-utils</Name>
<RuntimeDependencies>
<Dependency>libcap</Dependency>
<Dependency>sqlite</Dependency>
<Dependency>rpcbind</Dependency>
<Dependency>nfsidmap</Dependency>
<Dependency>keyutils</Dependency>
<Dependency>libevent</Dependency>
<Dependency>libtirpc</Dependency>
<Dependency>e2fsprogs</Dependency>
<Dependency>libgssglue</Dependency>
<Dependency>mit-kerberos</Dependency>
<Dependency>tcp-wrappers</Dependency>
<Dependency>device-mapper</Dependency>
<Dependency>libutil-linux</Dependency>
<Dependency>openldap-client</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="config">/etc/exports</Path>
<Path fileType="config">/etc/gssapi_mech.conf</Path>
<Path fileType="config">/etc/nfsmount.conf</Path>
<Path fileType="config">/etc/conf.d/nfs</Path>
<Path fileType="executable">/usr/sbin</Path>
<Path fileType="executable">/sbin</Path>
<Path fileType="library">/var/lib</Path>
<Path fileType="man">/usr/share/man</Path>
<Path fileType="doc">/usr/share/doc</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/etc/exports">exports</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/etc/conf.d/nfs">nfs.confd</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/etc/idmapd.conf">idmapd.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/etc/gssapi_mech.conf">gssapi_mech.conf</AdditionalFile>
</AdditionalFiles>
<Provides>
<COMAR script="nfs-common.py" name="nfs_common">System.Service</COMAR>
<COMAR script="nfs-server.py" name="nfs_server">System.Service</COMAR>
</Provides>
</Package>
<Package>
<Name>nfsidmap</Name>
<Summary>Library to help mapping IDs, mainly for NFSv4</Summary>
<RuntimeDependencies>
<Dependency>openldap-client</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="config">/etc/idmapd.conf</Path>
<Path fileType="library">/usr/lib/libnfsidmap*</Path>
<Path fileType="doc">/usr/share/doc/libnfsidmap</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2022-03-11</Date>
<Version>2.6.1</Version>
<Comment>First release</Comment>
<Name>Kamil Atlı</Name>
<Email>suvari@pisilinux.org</Email>
</Update>
</History>
</PISI>
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>nfs-utils</Name>
<Summary xml:lang="tr">NFS istemcisi ve sunucusu</Summary>
<Description xml:lang="tr">nfs-utils, NFS (Ağ dosya sistemi) istemcisi ve sunucusunu içerir.</Description>
</Source>
<Package>
<Name>nfsidmap</Name>
<Summary xml:lang="tr">Kimliklerin eşlenmesine yardımcı olacak kitaplık, özellikle NFSv4 için.</Summary>
</Package>
</PISI>
+2558 -965
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1 +1 @@
891b2a2bede76a719880707255d42a9b8591b661
86a771cb40c808e2f2f1f37bfa84db4fec59967a
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
900129338bce0fa9378fda8b32f5bcf21d3132fc
9e473d5dd97037d6c311a6155123bcf2f671bf50
+36
View File
@@ -0,0 +1,36 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import get
shelltools.export("CFLAGS", "%s -fpie" % get.CFLAGS())
shelltools.export("LDFLAGS", "%s -fpie" % get.LDFLAGS())
def setup():
autotools.autoreconf("-vfi")
## glibc provides rpcinfo in /usr/sbin, so move it to /sbin, thus bindir=/sbin
autotools.configure("--bindir=/usr/bin \
--enable-warmstarts \
--with-statedir=/var/lib/rpcbind \
--with-rpcuser=rpc \
--with-systemdsystemunitdir=no \
--enable-libwrap")
def build():
autotools.make()
def install():
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
pisitools.dodir("/var/lib/rpcbind")
# glibc has rpcinfo.8, so avoid conflict with glibc
pisitools.insinto("/usr/share/man/man8", "man/rpcinfo.8", "rpcbind-rpcinfo.8")
pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING", "NEWS", "README")
+33
View File
@@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
import os
from comar.service import *
serviceType = "server"
serviceDesc = _({"en": "RPCbind Daemon",
"tr": "RPCbind Servisi"})
serviceConf = "rpcbind"
PIDFILE = "/var/run/rpcbind.pid"
@synchronized
def start():
startService(command="/sbin/rpcbind",
args="-f %s" % config.get("RPCBIND_OPTS"),
makepid=True,
detach=True,
pidfile=PIDFILE,
donotify=True)
@synchronized
def stop():
stopService(pidfile=PIDFILE,
donotify=True)
try:
os.unlink(PIDFILE)
except OSError:
pass
def status():
return isServiceRunning(PIDFILE)
@@ -0,0 +1,26 @@
commit b3b031b07cc5909aaf964f9d4cf46f6097769320
Author: Steve Dickson <steved@redhat.com>
Date: Wed Aug 21 14:40:22 2013 -0400
rpcbind: rpcuser not being set in Makefile.am
Commit 8d7a0708 cause a regression where the rpcuser id was not
being set, which in turn cause rpcbind to immediately exit.
This patch removes the extra ',' that was in the AC_ARG_WITH
statement in the configure.ac file.
Signed-off-by: Steve Dickson <steved@redhat.com>
diff --git a/configure.ac b/configure.ac
index 2b67720..1cf42d3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@ AC_ARG_WITH([statedir],
AC_SUBST([statedir], [$with_statedir])
AC_ARG_WITH([rpcuser],
- AS_HELP_STRING([--with-rpcuser=ARG], [use ARG for RPC @<:@default=root@:>@]),
+ AS_HELP_STRING([--with-rpcuser=ARG], [use ARG for RPC @<:@default=root@:>@])
,, [with_rpcuser=root])
AC_SUBST([rpcuser], [$with_rpcuser])
+26
View File
@@ -0,0 +1,26 @@
Index: rpcbind-0.2.0/src/rpcbind.c
===================================================================
--- rpcbind-0.2.0.orig/src/rpcbind.c
+++ rpcbind-0.2.0/src/rpcbind.c
@@ -114,7 +114,7 @@ char *tcptrans; /* Name of TCP transpor
char *udp_uaddr; /* Universal UDP address */
char *tcp_uaddr; /* Universal TCP address */
#endif
-static char servname[] = "rpcbind";
+static char servname[] = "sunrpc";
static char superuser[] = "superuser";
int main __P((int, char *[]));
Index: rpcbind-0.2.0/src/rpcinfo.c
===================================================================
--- rpcbind-0.2.0.orig/src/rpcinfo.c
+++ rpcbind-0.2.0/src/rpcinfo.c
@@ -632,7 +632,7 @@ get_inet_address (addr, host)
{
memset (&hints, 0, sizeof hints);
hints.ai_family = AF_INET;
- if ((error = getaddrinfo (host, "rpcbind", &hints, &res)) != 0 &&
+ if ((error = getaddrinfo (host, "sunrpc", &hints, &res)) != 0 &&
(error = getaddrinfo (host, "portmapper", &hints, &res)) != 0)
{
fprintf (stderr, "rpcinfo: %s: %s\n",
+2
View File
@@ -0,0 +1,2 @@
# RPCbind options
RPCBIND_OPTS="-i"
+56
View File
@@ -0,0 +1,56 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>rpcbind</Name>
<Homepage>http://nfsv4.bullopensource.org</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>BSD</License>
<IsA>service</IsA>
<Summary>Universal Addresses to RPC Program Number Mapper</Summary>
<Description>The rpcbind utility is a server that converts RPC program numbers into universal addresses. It must be running on the host to be able to make RPC calls on a server on that machine.</Description>
<Archive sha1sum="a6dad1d9454f42f2f25a92caba8d3d7bddf527e3" type="tarbz2">mirrors://sourceforge/rpcbind/1.2.6/rpcbind-1.2.6.tar.bz2</Archive>
<BuildDependencies>
<Dependency>libtirpc-devel</Dependency>
<Dependency>tcp-wrappers-devel</Dependency>
</BuildDependencies>
<Patches>
<!-- <Patch level="1"></Patch> -->
</Patches>
</Source>
<Package>
<Name>rpcbind</Name>
<RuntimeDependencies>
<Dependency>libtirpc</Dependency>
<Dependency>tcp-wrappers</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="config">/etc</Path>
<Path fileType="executable">/usr/sbin/rpcbind</Path>
<Path fileType="executable">/usr/bin/rpcinfo</Path>
<Path fileType="data">/var/lib</Path>
<Path fileType="man">/usr/share/man</Path>
<Path fileType="doc">/usr/share/doc</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/etc/conf.d/rpcbind">rpcbind.sysconfig</AdditionalFile>
</AdditionalFiles>
<Provides>
<COMAR script="service.py">System.Service</COMAR>
</Provides>
</Package>
<History>
<Update release="1">
<Date>2022-03-11</Date>
<Version>1.2.6</Version>
<Comment>First release</Comment>
<Name>Kamil Atlı</Name>
<Email>suvari@pisilinux.org</Email>
</Update>
</History>
</PISI>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>rpcbind</Name>
<Summary xml:lang="tr">Evrensel adresleri RPC program numaralarına eşleştirici</Summary>
<Description xml:lang="tr">RPCbind aracı, RPC program numaralarını DARPA protokolü port numaralarına çeviren bir sunucu yazılımıdır.</Description>
</Source>
</PISI>