summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-pywerview.spec297
-rw-r--r--sources2
3 files changed, 227 insertions, 73 deletions
diff --git a/.gitignore b/.gitignore
index 08b5631..3da40a3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
/pywerview-0.4.1.tar.gz
+/pywerview-0.5.0.tar.gz
diff --git a/python-pywerview.spec b/python-pywerview.spec
index c61349a..42ef867 100644
--- a/python-pywerview.spec
+++ b/python-pywerview.spec
@@ -1,19 +1,19 @@
%global _empty_manifest_terminate_build 0
Name: python-pywerview
-Version: 0.4.1
+Version: 0.5.0
Release: 1
Summary: A Python port of PowerSploit's PowerView
License: GNU GPLv3
URL: https://github.com/the-useless-one/pywerview
-Source0: https://mirrors.nju.edu.cn/pypi/web/packages/79/4b/b08ce43bdf559685f642cc475f1f63ec1e9d78c7a3831923655f3355d14f/pywerview-0.4.1.tar.gz
+Source0: https://mirrors.aliyun.com/pypi/web/packages/2d/b8/62919b3e62083da26c5818866d5d39845b646d8f0a35628d8c20cc2364b9/pywerview-0.5.0.tar.gz
BuildArch: noarch
-Requires: python3-beautifulsoup4
-Requires: python3-gssapi
Requires: python3-impacket
-Requires: python3-ldap3
+Requires: python3-beautifulsoup4
Requires: python3-lxml
Requires: python3-pyasn1
+Requires: python3-ldap3
+Requires: python3-gssapi
Requires: python3-pycryptodome
%description
@@ -106,14 +106,19 @@ Here's the list of available commands:
{get-adobject,get-adserviceaccount,get-objectacl,get-netuser,get-netgroup,get-netcomputer,get-netdomaincontroller,get-netfileserver,get-dfsshare,get-netou,get-netsite,get-netsubnet,get-netdomaintrust,get-netgpo,get-netpso,get-domainpolicy,get-gpttmpl,get-netgpogroup,find-gpocomputeradmin,find-gpolocation,get-netgroupmember,get-netsession,get-localdisks,get-netdomain,get-netshare,get-netloggedon,get-netlocalgroup,invoke-checklocaladminaccess,get-netprocess,get-userevent,invoke-userhunter,invoke-processhunter,invoke-eventhunter}
get-adobject Takes a domain SID, samAccountName or name, and return the associated object
get-adserviceaccount
- Returns a list of all the gMSA of the specified domain (you need privileged account to retrieve passwords)
- get-objectacl Takes a domain SID, samAccountName or name, and return the ACL of the associated object
+ Returns a list of all the gMSA of the specified domain. To retrieve passwords,
+ you need a privileged account and a TLS connection to the LDAP server (use the
+ --tls switch).
+ get-objectacl Takes a domain SID, samAccountName or name, and return the ACL of the
+ associated object
get-netuser Queries information about a domain user
- get-netgroup Get a list of all current domain groups, or a list of groups a domain user is member of
+ get-netgroup Get a list of all current domain groups, or a list of groups a domain user is
+ member of
get-netcomputer Queries informations about domain computers
get-netdomaincontroller
Get a list of domain controllers for the given domain
- get-netfileserver Return a list of file servers, extracted from the domain users' homeDirectory, scriptPath, and profilePath fields
+ get-netfileserver Return a list of file servers, extracted from the domain users' homeDirectory,
+ scriptPath, and profilePath fields
get-dfsshare Return a list of all fault tolerant distributed file systems for a given domain
get-netou Get a list of all current OUs in the domain
get-netsite Get a list of all current sites in the domain
@@ -125,20 +130,29 @@ Here's the list of available commands:
get-gpttmpl Helper to parse a GptTmpl.inf policy file path into a custom object
get-netgpogroup Parses all GPOs in the domain that set "Restricted Group" or "Groups.xml"
find-gpocomputeradmin
- Takes a computer (or OU) and determine who has administrative access to it via GPO
- find-gpolocation Takes a username or a group name and determine the computers it has administrative access to via GPO
+ Takes a computer (or OU) and determine who has administrative access to it via
+ GPO
+ find-gpolocation Takes a username or a group name and determine the computers it has
+ administrative access to via GPO
get-netgroupmember Return a list of members of a domain group
- get-netsession Queries a host to return a list of active sessions on the host (you can use local credentials instead of domain credentials)
- get-localdisks Queries a host to return a list of active disks on the host (you can use local credentials instead of domain credentials)
+ get-netsession Queries a host to return a list of active sessions on the host (you can use
+ local credentials instead of domain credentials)
+ get-localdisks Queries a host to return a list of active disks on the host (you can use local
+ credentials instead of domain credentials)
get-netdomain Queries a host for available domains
- get-netshare Queries a host to return a list of available shares on the host (you can use local credentials instead of domain credentials)
- get-netloggedon This function will execute the NetWkstaUserEnum RPC call to query a given host for actively logged on users
- get-netlocalgroup Gets a list of members of a local group on a machine, or returns every local group. You can use local credentials instead of domain credentials, however, domain credentials are needed
- to resolve domain SIDs.
+ get-netshare Queries a host to return a list of available shares on the host (you can use
+ local credentials instead of domain credentials)
+ get-netloggedon This function will execute the NetWkstaUserEnum RPC call to query a given host
+ for actively logged on users
+ get-netlocalgroup Gets a list of members of a local group on a machine, or returns every local
+ group. You can use local credentials instead of domain credentials, however,
+ domain credentials are needed to resolve domain SIDs.
invoke-checklocaladminaccess
Checks if the given user has local admin access on the given host
- get-netprocess This function will execute the 'Select * from Win32_Process' WMI query to a given host for a list of executed process
- get-userevent This function will execute the 'SELECT * from Win32_NTLogEvent' WMI query to a given host for a list of executed process
+ get-netprocess This function will execute the 'Select * from Win32_Process' WMI query to a
+ given host for a list of executed process
+ get-userevent This function will execute the 'SELECT * from Win32_NTLogEvent' WMI query to a
+ given host for a list of executed process
invoke-userhunter Finds which machines domain users are logged into
invoke-processhunter
Searches machines for processes with specific name, or ran by specific users
@@ -156,7 +170,7 @@ an argument, and __not__ `USELESSDOMAIN`.
## GLOBAL ARGUMENTS
-### LOGGING
+### Logging
You can provide a logging level to `pywerview` modules by using `-l` or `--logging-level` options. Supported levels are:
@@ -239,10 +253,49 @@ To recap:
| SPN in the ticket | Can be used with LDAP functions | Can be used with SMB/RPC functions |
| :-----------------------------------: | :-----------------------------: | :--------------------------------: |
| `ldap/srv-ad.contoso.com@CONTOSO.COM` | ✔️ | ✔️ |
-| `cifs/srv-ad.contoso.com@CONTOSO.COm` | ✔️ | ✔️ |
+| `cifs/srv-ad.contoso.com@CONTOSO.COM` | ✔️ | ✔️ |
| `ldap/srv-ad@CONTOSO.COM` | ❌ | ✔️ |
-### TLS CONNECTION
+*NOTE:* The same limitation exists for TGT in your cache credential file: `krbtgt/srv-ad.contoso.com@CONTOSO.COM` will work
+but not `krbtgt/srv-ad@CONTOSO.COM`.
+
+### LDAP SChannel authentication
+
+SChannel authentication is supported for a subset of the submodules. Functions that support SChannel authentication are:
+
+* get-adobject
+* get-adserviceaccount
+* get-objectacl
+* get-netuser
+* get-netgroup
+* get-netcomputer
+* get-netdomaincontroller
+* get-netfileserver
+* get-netou
+* get-netsite
+* get-netsubnet
+* get-netdomaintrust
+* get-netpso
+* get-netgpo
+* get-netgroupmember
+
+To authenticate via SChannel:
+
+1. Retrieve the certificate and the key with your favorite tool ([ntlmrelayx.py](https://github.com/fortra/impacket), [certipy](https://github.com/ly4k/Certipy),...)
+2. `pywerview` needs a certificate file and a key file, so you need to extract them from the `.pfx`.
+3. Use `--cert` and `--key` as in the following example:
+
+```console
+$ python3 pywerview.py get-netuser -w contoso.com --dc-ip 172.16.0.55 --cert stormtroopers.crt --key stormtroopers.key --username administrator --attributes distinguishedname useraccountcontrol --tls
+distinguishedname: CN=Administrator,CN=Users,DC=contoso,DC=com
+useraccountcontrol: NORMAL_ACCOUNT
+
+```
+
+If you don't specify the `--tls` flag when using certificate authentication, `pywerview` will try to use StartTLS and an `EXTERNAL SASL` bind
+as described in the [Microsoft documentation](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-adts/8e73932f-70cf-46d6-88b1-8d9f86235e81)
+
+### TLS connection
You can force a connection to the LDAPS port by using the `--tls` switch. It
can be necessary with some functions, for example when retrieving gMSA
@@ -266,7 +319,7 @@ description:
enabled: True
```
-### JSON OUTPUT
+### JSON output
Pywerview can print results in json format by using the `--json` switch.
@@ -317,8 +370,6 @@ with this program. If not, see
-
-
%package -n python3-pywerview
Summary: A Python port of PowerSploit's PowerView
Provides: python-pywerview
@@ -415,14 +466,19 @@ Here's the list of available commands:
{get-adobject,get-adserviceaccount,get-objectacl,get-netuser,get-netgroup,get-netcomputer,get-netdomaincontroller,get-netfileserver,get-dfsshare,get-netou,get-netsite,get-netsubnet,get-netdomaintrust,get-netgpo,get-netpso,get-domainpolicy,get-gpttmpl,get-netgpogroup,find-gpocomputeradmin,find-gpolocation,get-netgroupmember,get-netsession,get-localdisks,get-netdomain,get-netshare,get-netloggedon,get-netlocalgroup,invoke-checklocaladminaccess,get-netprocess,get-userevent,invoke-userhunter,invoke-processhunter,invoke-eventhunter}
get-adobject Takes a domain SID, samAccountName or name, and return the associated object
get-adserviceaccount
- Returns a list of all the gMSA of the specified domain (you need privileged account to retrieve passwords)
- get-objectacl Takes a domain SID, samAccountName or name, and return the ACL of the associated object
+ Returns a list of all the gMSA of the specified domain. To retrieve passwords,
+ you need a privileged account and a TLS connection to the LDAP server (use the
+ --tls switch).
+ get-objectacl Takes a domain SID, samAccountName or name, and return the ACL of the
+ associated object
get-netuser Queries information about a domain user
- get-netgroup Get a list of all current domain groups, or a list of groups a domain user is member of
+ get-netgroup Get a list of all current domain groups, or a list of groups a domain user is
+ member of
get-netcomputer Queries informations about domain computers
get-netdomaincontroller
Get a list of domain controllers for the given domain
- get-netfileserver Return a list of file servers, extracted from the domain users' homeDirectory, scriptPath, and profilePath fields
+ get-netfileserver Return a list of file servers, extracted from the domain users' homeDirectory,
+ scriptPath, and profilePath fields
get-dfsshare Return a list of all fault tolerant distributed file systems for a given domain
get-netou Get a list of all current OUs in the domain
get-netsite Get a list of all current sites in the domain
@@ -434,20 +490,29 @@ Here's the list of available commands:
get-gpttmpl Helper to parse a GptTmpl.inf policy file path into a custom object
get-netgpogroup Parses all GPOs in the domain that set "Restricted Group" or "Groups.xml"
find-gpocomputeradmin
- Takes a computer (or OU) and determine who has administrative access to it via GPO
- find-gpolocation Takes a username or a group name and determine the computers it has administrative access to via GPO
+ Takes a computer (or OU) and determine who has administrative access to it via
+ GPO
+ find-gpolocation Takes a username or a group name and determine the computers it has
+ administrative access to via GPO
get-netgroupmember Return a list of members of a domain group
- get-netsession Queries a host to return a list of active sessions on the host (you can use local credentials instead of domain credentials)
- get-localdisks Queries a host to return a list of active disks on the host (you can use local credentials instead of domain credentials)
+ get-netsession Queries a host to return a list of active sessions on the host (you can use
+ local credentials instead of domain credentials)
+ get-localdisks Queries a host to return a list of active disks on the host (you can use local
+ credentials instead of domain credentials)
get-netdomain Queries a host for available domains
- get-netshare Queries a host to return a list of available shares on the host (you can use local credentials instead of domain credentials)
- get-netloggedon This function will execute the NetWkstaUserEnum RPC call to query a given host for actively logged on users
- get-netlocalgroup Gets a list of members of a local group on a machine, or returns every local group. You can use local credentials instead of domain credentials, however, domain credentials are needed
- to resolve domain SIDs.
+ get-netshare Queries a host to return a list of available shares on the host (you can use
+ local credentials instead of domain credentials)
+ get-netloggedon This function will execute the NetWkstaUserEnum RPC call to query a given host
+ for actively logged on users
+ get-netlocalgroup Gets a list of members of a local group on a machine, or returns every local
+ group. You can use local credentials instead of domain credentials, however,
+ domain credentials are needed to resolve domain SIDs.
invoke-checklocaladminaccess
Checks if the given user has local admin access on the given host
- get-netprocess This function will execute the 'Select * from Win32_Process' WMI query to a given host for a list of executed process
- get-userevent This function will execute the 'SELECT * from Win32_NTLogEvent' WMI query to a given host for a list of executed process
+ get-netprocess This function will execute the 'Select * from Win32_Process' WMI query to a
+ given host for a list of executed process
+ get-userevent This function will execute the 'SELECT * from Win32_NTLogEvent' WMI query to a
+ given host for a list of executed process
invoke-userhunter Finds which machines domain users are logged into
invoke-processhunter
Searches machines for processes with specific name, or ran by specific users
@@ -465,7 +530,7 @@ an argument, and __not__ `USELESSDOMAIN`.
## GLOBAL ARGUMENTS
-### LOGGING
+### Logging
You can provide a logging level to `pywerview` modules by using `-l` or `--logging-level` options. Supported levels are:
@@ -548,10 +613,49 @@ To recap:
| SPN in the ticket | Can be used with LDAP functions | Can be used with SMB/RPC functions |
| :-----------------------------------: | :-----------------------------: | :--------------------------------: |
| `ldap/srv-ad.contoso.com@CONTOSO.COM` | ✔️ | ✔️ |
-| `cifs/srv-ad.contoso.com@CONTOSO.COm` | ✔️ | ✔️ |
+| `cifs/srv-ad.contoso.com@CONTOSO.COM` | ✔️ | ✔️ |
| `ldap/srv-ad@CONTOSO.COM` | ❌ | ✔️ |
-### TLS CONNECTION
+*NOTE:* The same limitation exists for TGT in your cache credential file: `krbtgt/srv-ad.contoso.com@CONTOSO.COM` will work
+but not `krbtgt/srv-ad@CONTOSO.COM`.
+
+### LDAP SChannel authentication
+
+SChannel authentication is supported for a subset of the submodules. Functions that support SChannel authentication are:
+
+* get-adobject
+* get-adserviceaccount
+* get-objectacl
+* get-netuser
+* get-netgroup
+* get-netcomputer
+* get-netdomaincontroller
+* get-netfileserver
+* get-netou
+* get-netsite
+* get-netsubnet
+* get-netdomaintrust
+* get-netpso
+* get-netgpo
+* get-netgroupmember
+
+To authenticate via SChannel:
+
+1. Retrieve the certificate and the key with your favorite tool ([ntlmrelayx.py](https://github.com/fortra/impacket), [certipy](https://github.com/ly4k/Certipy),...)
+2. `pywerview` needs a certificate file and a key file, so you need to extract them from the `.pfx`.
+3. Use `--cert` and `--key` as in the following example:
+
+```console
+$ python3 pywerview.py get-netuser -w contoso.com --dc-ip 172.16.0.55 --cert stormtroopers.crt --key stormtroopers.key --username administrator --attributes distinguishedname useraccountcontrol --tls
+distinguishedname: CN=Administrator,CN=Users,DC=contoso,DC=com
+useraccountcontrol: NORMAL_ACCOUNT
+
+```
+
+If you don't specify the `--tls` flag when using certificate authentication, `pywerview` will try to use StartTLS and an `EXTERNAL SASL` bind
+as described in the [Microsoft documentation](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-adts/8e73932f-70cf-46d6-88b1-8d9f86235e81)
+
+### TLS connection
You can force a connection to the LDAPS port by using the `--tls` switch. It
can be necessary with some functions, for example when retrieving gMSA
@@ -575,7 +679,7 @@ description:
enabled: True
```
-### JSON OUTPUT
+### JSON output
Pywerview can print results in json format by using the `--json` switch.
@@ -626,8 +730,6 @@ with this program. If not, see
-
-
%package help
Summary: Development documents and examples for pywerview
Provides: python3-pywerview-doc
@@ -721,14 +823,19 @@ Here's the list of available commands:
{get-adobject,get-adserviceaccount,get-objectacl,get-netuser,get-netgroup,get-netcomputer,get-netdomaincontroller,get-netfileserver,get-dfsshare,get-netou,get-netsite,get-netsubnet,get-netdomaintrust,get-netgpo,get-netpso,get-domainpolicy,get-gpttmpl,get-netgpogroup,find-gpocomputeradmin,find-gpolocation,get-netgroupmember,get-netsession,get-localdisks,get-netdomain,get-netshare,get-netloggedon,get-netlocalgroup,invoke-checklocaladminaccess,get-netprocess,get-userevent,invoke-userhunter,invoke-processhunter,invoke-eventhunter}
get-adobject Takes a domain SID, samAccountName or name, and return the associated object
get-adserviceaccount
- Returns a list of all the gMSA of the specified domain (you need privileged account to retrieve passwords)
- get-objectacl Takes a domain SID, samAccountName or name, and return the ACL of the associated object
+ Returns a list of all the gMSA of the specified domain. To retrieve passwords,
+ you need a privileged account and a TLS connection to the LDAP server (use the
+ --tls switch).
+ get-objectacl Takes a domain SID, samAccountName or name, and return the ACL of the
+ associated object
get-netuser Queries information about a domain user
- get-netgroup Get a list of all current domain groups, or a list of groups a domain user is member of
+ get-netgroup Get a list of all current domain groups, or a list of groups a domain user is
+ member of
get-netcomputer Queries informations about domain computers
get-netdomaincontroller
Get a list of domain controllers for the given domain
- get-netfileserver Return a list of file servers, extracted from the domain users' homeDirectory, scriptPath, and profilePath fields
+ get-netfileserver Return a list of file servers, extracted from the domain users' homeDirectory,
+ scriptPath, and profilePath fields
get-dfsshare Return a list of all fault tolerant distributed file systems for a given domain
get-netou Get a list of all current OUs in the domain
get-netsite Get a list of all current sites in the domain
@@ -740,20 +847,29 @@ Here's the list of available commands:
get-gpttmpl Helper to parse a GptTmpl.inf policy file path into a custom object
get-netgpogroup Parses all GPOs in the domain that set "Restricted Group" or "Groups.xml"
find-gpocomputeradmin
- Takes a computer (or OU) and determine who has administrative access to it via GPO
- find-gpolocation Takes a username or a group name and determine the computers it has administrative access to via GPO
+ Takes a computer (or OU) and determine who has administrative access to it via
+ GPO
+ find-gpolocation Takes a username or a group name and determine the computers it has
+ administrative access to via GPO
get-netgroupmember Return a list of members of a domain group
- get-netsession Queries a host to return a list of active sessions on the host (you can use local credentials instead of domain credentials)
- get-localdisks Queries a host to return a list of active disks on the host (you can use local credentials instead of domain credentials)
+ get-netsession Queries a host to return a list of active sessions on the host (you can use
+ local credentials instead of domain credentials)
+ get-localdisks Queries a host to return a list of active disks on the host (you can use local
+ credentials instead of domain credentials)
get-netdomain Queries a host for available domains
- get-netshare Queries a host to return a list of available shares on the host (you can use local credentials instead of domain credentials)
- get-netloggedon This function will execute the NetWkstaUserEnum RPC call to query a given host for actively logged on users
- get-netlocalgroup Gets a list of members of a local group on a machine, or returns every local group. You can use local credentials instead of domain credentials, however, domain credentials are needed
- to resolve domain SIDs.
+ get-netshare Queries a host to return a list of available shares on the host (you can use
+ local credentials instead of domain credentials)
+ get-netloggedon This function will execute the NetWkstaUserEnum RPC call to query a given host
+ for actively logged on users
+ get-netlocalgroup Gets a list of members of a local group on a machine, or returns every local
+ group. You can use local credentials instead of domain credentials, however,
+ domain credentials are needed to resolve domain SIDs.
invoke-checklocaladminaccess
Checks if the given user has local admin access on the given host
- get-netprocess This function will execute the 'Select * from Win32_Process' WMI query to a given host for a list of executed process
- get-userevent This function will execute the 'SELECT * from Win32_NTLogEvent' WMI query to a given host for a list of executed process
+ get-netprocess This function will execute the 'Select * from Win32_Process' WMI query to a
+ given host for a list of executed process
+ get-userevent This function will execute the 'SELECT * from Win32_NTLogEvent' WMI query to a
+ given host for a list of executed process
invoke-userhunter Finds which machines domain users are logged into
invoke-processhunter
Searches machines for processes with specific name, or ran by specific users
@@ -771,7 +887,7 @@ an argument, and __not__ `USELESSDOMAIN`.
## GLOBAL ARGUMENTS
-### LOGGING
+### Logging
You can provide a logging level to `pywerview` modules by using `-l` or `--logging-level` options. Supported levels are:
@@ -854,10 +970,49 @@ To recap:
| SPN in the ticket | Can be used with LDAP functions | Can be used with SMB/RPC functions |
| :-----------------------------------: | :-----------------------------: | :--------------------------------: |
| `ldap/srv-ad.contoso.com@CONTOSO.COM` | ✔️ | ✔️ |
-| `cifs/srv-ad.contoso.com@CONTOSO.COm` | ✔️ | ✔️ |
+| `cifs/srv-ad.contoso.com@CONTOSO.COM` | ✔️ | ✔️ |
| `ldap/srv-ad@CONTOSO.COM` | ❌ | ✔️ |
-### TLS CONNECTION
+*NOTE:* The same limitation exists for TGT in your cache credential file: `krbtgt/srv-ad.contoso.com@CONTOSO.COM` will work
+but not `krbtgt/srv-ad@CONTOSO.COM`.
+
+### LDAP SChannel authentication
+
+SChannel authentication is supported for a subset of the submodules. Functions that support SChannel authentication are:
+
+* get-adobject
+* get-adserviceaccount
+* get-objectacl
+* get-netuser
+* get-netgroup
+* get-netcomputer
+* get-netdomaincontroller
+* get-netfileserver
+* get-netou
+* get-netsite
+* get-netsubnet
+* get-netdomaintrust
+* get-netpso
+* get-netgpo
+* get-netgroupmember
+
+To authenticate via SChannel:
+
+1. Retrieve the certificate and the key with your favorite tool ([ntlmrelayx.py](https://github.com/fortra/impacket), [certipy](https://github.com/ly4k/Certipy),...)
+2. `pywerview` needs a certificate file and a key file, so you need to extract them from the `.pfx`.
+3. Use `--cert` and `--key` as in the following example:
+
+```console
+$ python3 pywerview.py get-netuser -w contoso.com --dc-ip 172.16.0.55 --cert stormtroopers.crt --key stormtroopers.key --username administrator --attributes distinguishedname useraccountcontrol --tls
+distinguishedname: CN=Administrator,CN=Users,DC=contoso,DC=com
+useraccountcontrol: NORMAL_ACCOUNT
+
+```
+
+If you don't specify the `--tls` flag when using certificate authentication, `pywerview` will try to use StartTLS and an `EXTERNAL SASL` bind
+as described in the [Microsoft documentation](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-adts/8e73932f-70cf-46d6-88b1-8d9f86235e81)
+
+### TLS connection
You can force a connection to the LDAPS port by using the `--tls` switch. It
can be necessary with some functions, for example when retrieving gMSA
@@ -881,7 +1036,7 @@ description:
enabled: True
```
-### JSON OUTPUT
+### JSON output
Pywerview can print results in json format by using the `--json` switch.
@@ -932,10 +1087,8 @@ with this program. If not, see
-
-
%prep
-%autosetup -n pywerview-0.4.1
+%autosetup -n pywerview-0.5.0
%build
%py3_build
@@ -949,20 +1102,20 @@ if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
- find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+ find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
- find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+ find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
- find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+ find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
- find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+ find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
- find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+ find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
@@ -975,5 +1128,5 @@ mv %{buildroot}/doclist.lst .
%{_docdir}/*
%changelog
-* Tue May 30 2023 Python_Bot <Python_Bot@openeuler.org> - 0.4.1-1
+* Thu Jun 08 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.0-1
- Package Spec generated
diff --git a/sources b/sources
index a716a87..25ac5e9 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-ab13894e31146ec6c5aad72ce35c0797 pywerview-0.4.1.tar.gz
+0b7e5ff6790a5c532475d895273a4053 pywerview-0.5.0.tar.gz