forked from semios/semios-packages
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bf52025629 |
+6
-1
@@ -1,9 +1,14 @@
|
||||
from typing import Callable, TypeAlias
|
||||
|
||||
from . import autostrip
|
||||
from . import autopatch, autostrip
|
||||
|
||||
PreBuild: TypeAlias = Callable[[], None]
|
||||
PostBuild: TypeAlias = Callable[[], None]
|
||||
|
||||
pre_build: dict[str, PreBuild] = {
|
||||
"autopatch": autopatch.autopatch,
|
||||
}
|
||||
|
||||
post_build: dict[str, PostBuild] = {
|
||||
"autostrip": autostrip.autostrip,
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
import lib.sources as sources
|
||||
|
||||
|
||||
def autopatch():
|
||||
if not os.path.exists("patches"):
|
||||
return
|
||||
|
||||
target_dir = os.getcwd() + "/target"
|
||||
source_dir = sources.sources_dir_name()
|
||||
patches_tag_file = f"{target_dir}/patches.tag"
|
||||
|
||||
patches_dir = os.getcwd() + "/patches"
|
||||
patches = os.listdir(patches_dir)
|
||||
patches.sort()
|
||||
|
||||
os.chdir(source_dir)
|
||||
if not os.path.exists(patches_tag_file):
|
||||
open(patches_tag_file, "+w").close()
|
||||
for i in patches:
|
||||
with open(patches_tag_file, "r") as file:
|
||||
if i + "\n" in file.readlines():
|
||||
continue
|
||||
with open(f"{patches_dir}/{i}", "r") as file:
|
||||
subprocess.run(["patch", "-p1"], stdin=file)
|
||||
with open(patches_tag_file, "+a") as file:
|
||||
file.write(i + "\n")
|
||||
+6
-1
@@ -21,7 +21,12 @@ def make_install(rem: list[str] | None = None, chdir: bool = True):
|
||||
|
||||
|
||||
def _do_auto_pack(pc: pkgcomposer.PkgComposer, srcdir: str, dstdir: str, filter):
|
||||
pc.makedir(dstdir)
|
||||
if not os.path.exists(srcdir):
|
||||
return
|
||||
try:
|
||||
pc.makedir(dstdir)
|
||||
except Exception:
|
||||
pass
|
||||
with os.scandir(srcdir) as entries:
|
||||
for ent in entries:
|
||||
if filter(ent):
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
--- a/lib/fnmatch.c
|
||||
+++ b/lib/fnmatch.c
|
||||
@@ -120,9 +120,6 @@
|
||||
/* Avoid depending on library functions or files
|
||||
whose names are inconsistent. */
|
||||
|
||||
-# if !defined _LIBC && !defined getenv
|
||||
-extern char *getenv ();
|
||||
-# endif
|
||||
|
||||
# ifndef errno
|
||||
extern int errno;
|
||||
|
||||
--- a/src/getopt.c
|
||||
+++ b/src/getopt.c
|
||||
@@ -202,7 +202,7 @@ static char *posixly_correct;
|
||||
whose names are inconsistent. */
|
||||
|
||||
#ifndef getenv
|
||||
-extern char *getenv ();
|
||||
+extern char *getenv (const char *);
|
||||
#endif
|
||||
|
||||
static char *
|
||||
|
||||
--- a/src/getopt.h
|
||||
+++ b/src/getopt.h
|
||||
@@ -102,7 +102,7 @@ struct option
|
||||
errors, only prototype getopt for the GNU C library. */
|
||||
extern int getopt (int argc, char *const *argv, const char *shortopts);
|
||||
#else /* not __GNU_LIBRARY__ */
|
||||
-extern int getopt ();
|
||||
+extern int getopt (int, char * const*, const char *);
|
||||
#endif /* __GNU_LIBRARY__ */
|
||||
extern int getopt_long (int argc, char *const *argv, const char *shortopts,
|
||||
const struct option *longopts, int *longind);
|
||||
@@ -1,17 +0,0 @@
|
||||
import lib.cpp as cpp
|
||||
from lib.make import *
|
||||
|
||||
version("4.4.1")
|
||||
source_url("https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz")
|
||||
|
||||
|
||||
def build():
|
||||
cpp.configure(["--prefix=/"])
|
||||
cpp.make()
|
||||
cpp.make_install()
|
||||
|
||||
|
||||
on_build(build)
|
||||
|
||||
package("gnu-make")
|
||||
cpp.use_auto_pack(["bin"])
|
||||
@@ -46,6 +46,13 @@ def run_build_package(package: str):
|
||||
print(f"Architecture {lib.arch.get_target()} is not supported for this package")
|
||||
exit(1)
|
||||
|
||||
# Run `pre_build` hooks
|
||||
for n in hooks.pre_build.keys():
|
||||
if n in lib.make._blocked_hooks:
|
||||
continue
|
||||
hooks.pre_build[n]()
|
||||
os.chdir(package_dir)
|
||||
|
||||
# Build the package
|
||||
if lib.make._on_build:
|
||||
os.chdir(lib.sources.sources_dir_name())
|
||||
@@ -54,10 +61,12 @@ def run_build_package(package: str):
|
||||
print("on_build(): Not defined")
|
||||
|
||||
# Run `post_build` hooks
|
||||
post_build_dir = os.getcwd()
|
||||
for n in hooks.post_build.keys():
|
||||
if n in lib.make._blocked_hooks:
|
||||
continue
|
||||
hooks.post_build[n]()
|
||||
os.chdir(post_build_dir)
|
||||
|
||||
# Pack packages
|
||||
for pkgname in lib.make._pkginfo.keys():
|
||||
|
||||
Reference in New Issue
Block a user